home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-26 | 159.0 KB | 3,499 lines |
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- NNNNAAAAMMMMEEEE
- tcsh - C shell with file name completion and command line
- editing
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ttttccccsssshhhh [ ----bbbbccccddddeeeeffffiiiimmmmnnnnqqqqssssttttvvvvVVVVxxxxXXXX ] [ _a_r_g_u_m_e_n_t ... ]
-
- or
- ttttccccsssshhhh ----llll
-
- OS/Dependent Options
- ttttccccsssshhhh [ ----FFFF ] [ ----DDDDnnnnaaaammmmeeee[[[[====vvvvaaaalllluuuueeee]]]] ]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _T_c_s_h is an enhanced version of the Berkeley UNIX C shell
- _c_s_h(1). It behaves exactly like the C shell, except for the
- added utilities of:
-
- 1) Command line editing using Emacs-style commands.
-
- 2) Visual step up/down through the history list.
-
- 3) Terminal mode sanity checking and resetting.
-
- 4) Interactive command, file name and user name
- completion.
-
- 5) File/directory/user list in the middle of a typed
- command.
-
- 6) Spelling correction of command, file, and user names.
-
- 7) Lookup of command documentation in the middle of a
- typed command.
-
- 8) Enhanced history mechanism.
-
- 9) Automatic locking/logout after long periods of idle
- time.
-
- 10) Automatic execution of a single command prior to
- printing each prompt.
-
- 11) Automatic periodic command execution.
-
- 12) A new syntax for the prompt, and the ability to set
- the prompt for "while" and "for" loops.
-
- 13) Time stamps in the history list.
-
- 14) An addition to the syntax of filenames to access
- entries in the directory stack, and the ability treat
-
-
-
- Page 1 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- symbolic links in a sane way when changing
- directories.
-
- 15) The ability to watch for logins and logouts by user or
- terminal on the machine.
-
- 16) A scheduled event list, which specifies commands which
- are to be executed at given times.
-
- 17) A new builtin that does a subset of _l_s(1).
-
- 18) An addition to the file expression syntax for a
- character not in a set of characters and the ability
- to negate a globbing pattern.
-
- 19) New automatically initialized environment variables
- _H_O_S_T and _H_O_S_T_T_Y_P_E.
-
- 20) Commands for debugging terminal capabilities.
-
- 21) Searching for the visual history mechanism.
-
- 22) New builtins for the _w_h_i_c_h(1) and _w_h_e_r_e commands.
-
- 23) Restarting a stopped editor with two keystrokes.
-
- 24) Status line support
-
- 25) Automatic execution of a command when the current
- working directory is changed.
-
- 26) Native Language System support.
-
- 27) Automatic process time reporting.
-
- 28) OS Dependent Builtin Support
-
- 29) Automatic window size adjustment
-
- 30) Input files
-
- 31) Additional/Undocumented Options
-
- 32) Enhanced history/variable modifier expansion
-
- 33) Programmable completion.
-
- 34) Enhanced file inquiry operator.
-
- 35) Readonly variables.
-
- For a description of standard C-shell features, see the _c_s_h
-
-
-
- Page 2 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- manual page.
-
- 1111.... CCCCOOOOMMMMMMMMAAAANNNNDDDD LLLLIIIINNNNEEEE EEEEDDDDIIIITTTTIIIINNNNGGGG
- Commands that the user types in may be edited using the same
- control characters that Gnu Emacs or vi uses. Arrow and
- function key sequences are also allowed. _T_c_s_h allows this
- by setting the terminal to `CBREAK' mode and reading the
- input one character at a time.
-
- There is a new shell command, _b_i_n_d_k_e_y, that allows the user
- to redefine what any key does, or find out what any or all
- of the keys do.
-
- Syntax: bindkey [ -a ] [ -c ] [ -s ] [ -v ] [ -e ] [ -d ] [
- -k ] [ -l ] [ -r ] [ -- ] [ [ in-string | key-name ] [ out-
- string | command ]]
-
- If no values are given all bindings are listed. If only in-
- string is given, bindings for the in-string is listed.
-
- Otherwise it binds the in-string to the given out-string or
- command. If out-string, this is treated as input to _t_c_s_h
- when in-string is typed. This may be used recursively to
- currently a level of 10 deep.
-
- There are two basic key maps: the normal and alternative
- one. The alternative is used by VI command mode. For multi-
- character input the basic key maps contains a sequence-
- lead-in for the first character in the input.
-
- Options:
- -a bind in-string in alternative key map
- -s bind an out-string instead of a command
- -c bind a unix command instead of a command
- -v bind for default VI-mode
- -e bind for default emacs-mode
- -k interpret in-string as a symbolic arrow key name
- -d bind to compiled in default
- -l list functions available with short description
- -r remove the binding of in-string
-
- In strings control characters may be written as caret-
- <letter> and backslash ("\") is used to escape a character
- as follows:
- \\\\aaaa bell character
- \\\\nnnn line feed (new line)
- \\\\bbbb back space
- \\\\tttt horizontal tab
- \\\\vvvv vertical tab
- \\\\ffff form feed
- \\\\rrrr carriage return
- \\\\eeee escape
-
-
-
- Page 3 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- \\\\nnnnnnnnnnnn character code in octal
- In all other cases \ escapes the following character. Needed
- for escaping the special meaning of \ and ^. Delete is
- written as "^?" (caret-question mark).
-
- _T_c_s_h always binds the arrow keys as defined by the termcap
- entry to:
-
- up arrow up-history
- down arrow down-history
- right arrow forward-char
- left arrow backward-char
-
- except where these bindings would alter other single
- character bindings. If this is not desired one can avoid
- the automatic arrow key binding using _s_e_t_t_c to change the
- arrow key escape sequences to the empty string. The
- ansi/vt100 sequences for arrow keys are always bound.
-
- The following is a list of the default emacs and vi
- bindings. Characters with the 8th bit set are written as
- M-<character>. Note however, that unlike with the old _b_i_n_d
- command (see below), the syntax M-<character> has no special
- meaning to the _b_i_n_d_k_e_y command, and the bindings for the
- sequence escape+<character> and M-<character> as given below
- are handled separately (although the the default bindings
- are the same). The printable ascii characters not mentioned
- in the list are bound to the _s_e_l_f-_i_n_s_e_r_t-_c_o_m_m_a_n_d function,
- which just inserts the given character literally into the
- input line. The remaining characters are bound to the
- _u_n_d_e_f_i_n_e_d-_k_e_y function, which only causes a beep (unless
- _n_o_b_e_e_p is set, of course).
-
- EMACS bindings
-
- "^@" -> set-mark-command
- "^A" -> beginning-of-line
- "^B" -> backward-char
- "^C" -> tty-sigintr
- "^D" -> delete-char-or-list
- "^E" -> end-of-line
- "^F" -> forward-char
- "^G" -> is undefined
- "^H" -> backward-delete-char
- "^I" -> complete-word
- "^J" -> newline
- "^K" -> kill-line
- "^L" -> clear-screen
- "^M" -> newline
- "^N" -> down-history
- "^O" -> tty-flush-output
- "^P" -> up-history
-
-
-
- Page 4 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- "^Q" -> tty-start-output
- "^R" -> redisplay
- "^S" -> tty-stop-output
- "^T" -> transpose-chars
- "^U" -> kill-whole-line
- "^V" -> quoted-insert
- "^W" -> kill-region
- "^X" -> sequence-lead-in
- "^Y" -> yank
- "^Z" -> tty-sigtsusp
- "^[" -> sequence-lead-in
- "^\" -> tty-sigquit
- "^]" -> tty-dsusp
- " " to "/" -> self-insert-command
- "0" to "9" -> digit
- ":" to "~" -> self-insert-command
- "^?" -> backward-delete-char
-
- EMACS Multi-character and 8 bit bindings
-
- "^[^D" or "M-^D" -> list-choices
- "^[^H" or "M-^H" -> backward-delete-word
- "^[^I" or "M-^I" -> complete-word
- "^[^L" or "M-^L" -> clear-screen
- "^[^Z" or "M-^Z" -> run-fg-editor
- "^[^[" or "M-^[" -> complete-word
- "^[^_" or "M-^_" -> copy-prev-word
- "^[ " or "M- " -> expand-history
- "^[!" or "M-!" -> expand-history
- "^[$" or "M-$" -> spell-line
- "^[0" or "M-0" -> digit-argument
- "^[1" or "M-1" -> digit-argument
- "^[2" or "M-2" -> digit-argument
- "^[3" or "M-3" -> digit-argument
- "^[4" or "M-4" -> digit-argument
- "^[5" or "M-5" -> digit-argument
- "^[6" or "M-6" -> digit-argument
- "^[7" or "M-7" -> digit-argument
- "^[8" or "M-8" -> digit-argument
- "^[9" or "M-9" -> digit-argument
- "^[?" or "M-?" -> which-command
- "^[B" or "M-B" -> backward-word
- "^[C" or "M-C" -> capitalize-word
- "^[D" or "M-D" -> delete-word
- "^[F" or "M-F" -> forward-word
- "^[H" or "M-H" -> run-help
- "^[L" or "M-L" -> downcase-word
- "^[N" or "M-N" -> history-search-forward
- "^[P" or "M-P" -> history-search-backward
- "^[R" or "M-R" -> toggle-literal-history
- "^[S" or "M-S" -> spell-word
- "^[U" or "M-U" -> upcase-word
-
-
-
- Page 5 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- "^[W" or "M-W" -> copy-region-as-kill
- "^[_" or "M-_" -> insert-last-word
- "^[b" or "M-b" -> backward-word
- "^[c" or "M-c" -> capitalize-word
- "^[d" or "M-d" -> delete-word
- "^[f" or "M-f" -> forward-word
- "^[h" or "M-h" -> run-help
- "^[l" or "M-l" -> downcase-word
- "^[n" or "M-n" -> history-search-forward
- "^[p" or "M-p" -> history-search-backward
- "^[r" or "M-r" -> toggle-literal-history
- "^[s" or "M-s" -> spell-word
- "^[u" or "M-u" -> upcase-word
- "^[w" or "M-w" -> copy-region-as-kill
- "^[^?" or "M-^?" -> backward-delete-word
- "^X^X" -> exchange-point-and-mark
- "^X*" -> expand-glob
- "^X$" -> expand-variables
- "^XG" -> list-glob
- "^Xg" -> list-glob
- "^Xn -> normalize-path
- "^XN -> normalize-path
-
-
- VI Insert Mode functions
-
- "^@" -> is undefined
- "^A" -> beginning-of-line
- "^B" -> backward-char
- "^C" -> tty-sigintr
- "^D" -> list-or-eof
- "^E" -> end-of-line
- "^F" -> forward-char
- "^G" -> list-glob
- "^H" -> backward-delete-char
- "^I" -> complete-word
- "^J" -> newline
- "^K" -> kill-line
- "^L" -> clear-screen
- "^M" -> newline
- "^N" -> down-history
- "^O" -> tty-flush-output
- "^P" -> up-history
- "^Q" -> tty-start-output
- "^R" -> redisplay
- "^S" -> tty-stop-output
- "^T" -> transpose-chars
- "^U" -> backward-kill-line
- "^V" -> quoted-insert
- "^W" -> backward-delete-word
- "^X" -> expand-line
- "^Y" -> tty-dsusp
-
-
-
- Page 6 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- "^Z" -> tty-sigtsusp
- "^[" -> vi-cmd-mode
- "^\" -> tty-sigquit
- " " to "~" -> self-insert-command
- "^?" -> backward-delete-char
-
- VI Command Mode functions
-
- "^@" -> is undefined
- "^A" -> beginning-of-line
- "^B" -> is undefined
- "^C" -> tty-sigintr
- "^D" -> list-choices
- "^E" -> end-of-line
- "^F" -> is undefined
- "^G" -> list-glob
- "^H" -> backward-char
- "^I" -> vi-cmd-mode-complete
- "^J" -> newline
- "^K" -> kill-line
- "^L" -> clear-screen
- "^M" -> newline
- "^N" -> down-history
- "^O" -> tty-flush-output
- "^P" -> up-history
- "^Q" -> tty-start-output
- "^R" -> redisplay
- "^S" -> tty-stop-output
- "^T" -> is undefined
- "^U" -> backward-kill-line
- "^V" -> is undefined
- "^W" -> backward-delete-word
- "^X" -> expand-line
- "^[" -> sequence-lead-in
- "^\" -> tty-sigquit
- " " -> forward-char
- "!" -> expand-history
- "$" -> end-of-line
- "*" -> expand-glob
- "+" -> down-history
- ";" -> vi-repeat-char-fwd
- "," -> vi-repeat-char-back
- "-" -> up-history
- "." -> is undefined
- "/" -> vi-search-back
- "0" -> vi-zero
- "1" to "9" -> digit-argument
- "?" -> vi-search-fwd
- "@" -> is undefined
- "A" -> vi-add-at-eol
- "B" -> vi-word-back
- "C" -> change-till-end-of-line
-
-
-
- Page 7 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- "D" -> kill-line
- "E" -> vi-endword
- "F" -> vi-char-back
- "I" -> vi-insert-at-bol
- "J" -> history-search-forward
- "K" -> history-search-backward
- "N" -> vi-search-back
- "O" -> sequence-lead-in
- "R" -> vi-replace-mode
- "S" -> vi-substitute-line
- "T" -> vi-charto-back
- "U" -> is undefined
- "V" -> expand-variables
- "W" -> vi-word-fwd
- "X" -> backward-delete-char
- "[" -> sequence-lead-in
- "\^" -> beginning-of-line
- "a" -> vi-add
- "b" -> backward-word
- "c" -> is undefined
- "d" -> vi-delmeta
- "e" -> vi-eword
- "f" -> vi-char-fwd
- "h" -> backward-char
- "i" -> vi-insert
- "j" -> down-history
- "k" -> up-history
- "l" -> forward-char
- "m" -> is undefined
- "n" -> vi-search-fwd
- "r" -> vi-replace-char
- "s" -> vi-substitute-char
- "t" -> vi-charto-fwd
- "u" -> vi-undo
- "v" -> expand-variables
- "w" -> vi-beginning-of-next-word
- "x" -> delete-char
- "~" -> change-case
- "^?" -> backward-delete-char
- "M-?" -> run-help
- "M-[" -> sequence-lead-in
- "M-O" -> sequence-lead-in
-
- VI Multi-character bindings
-
- "^[?" -> run-help
-
-
- In _t_c_s_h there are two input modes: _i_n_s_e_r_t and _o_v_e_r_w_r_i_t_e. All
- characters that are bound to the _s_e_l_f-_i_n_s_e_r_t-_c_o_m_m_a_n_d either
- get inserted or overwrite what was under the cursor
- depending on the input mode. In emacs one can toggle between
-
-
-
- Page 8 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- modes using the _o_v_e_r_w_r_i_t_e-_m_o_d_e function, and in VI one can
- use any of the replace mode commands. By default the mode
- is preserved between input lines. To specify a default mode
- that can be enforced at the beginning of each command line,
- the variable _i_n_p_u_t_m_o_d_e can be set to either _i_n_s_e_r_t or
- _o_v_e_r_w_r_i_t_e.
-
- There is also an older version of bindkey called _b_i_n_d, that
- allows the user to redefine what any key does, or find out
- what any or all of the keys do. This is retained for
- compatibility reasons.
-
- If given two arguments _b_i_n_d binds the function (first
- argument) to the given key (second argument). The key may
- be: the direct character or a caret-<letter> combination,
- which is converted to control-<letter>; M-<letter> for an
- escaped character; or F-<string> for a function key. For
- the last of these, the function key prefix must be bound to
- the function "sequence-lead-in" and the string specified to
- the _b_i_n_d command must not include this prefix.
-
- If given one argument _b_i_n_d takes the argument as the name
- for a key and tells what that key does. As a special case,
- the user can say
-
- bind emacs
- or
- bind vi
-
- to bind all the keys for Emacs or vi mode respectively.
-
- If given no arguments _b_i_n_d tells what all of the keys do.
- If you give bind the single argument of 'defaults', it
- resets each key to its default value (see the above list).
-
- 2222.... VVVVIIIISSSSUUUUAAAALLLL HHHHIIIISSSSTTTTOOOORRRRYYYY
- The keys ^P and ^N are used to step up and down the history
- list. If the user has typed in the following:
-
- > ls
- foo bar
- > echo mumble
- mumble
- >
-
- then enters ^_P, the shell will place "echo mumble" into the
- editing buffer, and will put the cursor at the end of the
- line. If another ^_P is entered, then the editing line will
- change to "ls". More ^_Ps will make the bell ring, since
- there are no more lines in the history. ^_N works the same
- way, except it steps down (forward in time).
-
-
-
-
- Page 9 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- An easy way to re-do a command is to type ^_P followed by
- _R_e_t_u_r_n. Also, pieces of previous commands can be assembled
- to make a new command. The commands that work on regions
- are especially useful for this.
-
- ^_P and ^_N actually only copy commands from out of the
- history into the edit buffer; thus the user may step back
- into the history and then edit things, but those changes do
- not affect what is actually in _t_c_s_h '_s history.
-
- Another way to recall (parts of) history commands is via the
- 'expand-history' function. A variation of the 'expand-
- history' function is called 'magic-space'. This function
- expands _c_s_h history, and always appends a space. Magic-space
- thus can be bound to <space>, to automatically expand _c_s_h
- history. Expand-history is normally bound to _M-<_s_p_a_c_e> and
- magic-space is not bound.
-
- 3333.... TTTTTTTTYYYY MMMMOOOODDDDEEEE SSSSAAAANNNNIIIITTTTYYYY
- As part of the editor, _t_c_s_h does a check and reset of the
- terminal mode bits. If the speed has been changed, then
- _t_c_s_h will change to using that speed. _T_c_s_h will also obey
- changes in the padding needed by the tty. Also, the shell
- will automatically turn off RAW and CBREAK (on systems that
- use _t_e_r_m_i_o(_7) it will turn on ICANON) modes, and will turn
- on the tty driver's output processing (OPOST).
-
- The list of the tty modes that are always set or cleared by
- _t_c_s_h can be examined and modified using the _s_e_t_t_y builtin.
- The _s_e_t_t_y display is similar to _s_t_t_y(_1), and varies
- depending on the system's tty driver. Modes that _t_c_s_h will
- always try to set are shown as +_m_o_d_e . Modes that _t_c_s_h will
- always try to clear are shown as -_m_o_d_e and modes that tcsh
- will track and allow to be modified are not shown by
- default, or if the -_a flag is given, are shown without a
- leading sign. For tty characters, -_c_h_a_r disables the tty
- character, while +_c_h_a_r protects the tty character from being
- changed.
-
- Setty can be used to control the three different modes _t_c_s_h
- uses for the tty. The default mode displayed is the
- "execute" mode which is used when tcsh executes commands.
- The two other modes are the "edit" mode and the "quote"
- mode. The "edit" mode is used for command line editing, and
- the "quote" mode is used when entering literal characters.
- The "execute" mode can be specified with -_x , the "edit"
- mode with -_d , and the "quote" mode with -_q For example if
- one wants to set the _e_c_h_o_k flag and let the _e_c_h_o_e pass
- unchanged:
-
- > setty
- iflag:-inlcr -igncr +icrnl
-
-
-
- Page 10 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- oflag:+opost +onlcr -onlret
- cflag:
- lflag:+isig +icanon +echo +echoe -echok -echonl -noflsh
- +echoctl -flusho +iexten
- chars:
- > setty +echok echoe
- > setty
- iflag:-inlcr -igncr +icrnl
- oflag:+opost +onlcr -onlret
- cflag:
- lflag:+isig +icanon +echo +echok -echonl -noflsh +echoctl
- -flusho +iexten
- chars:
-
-
- 4444.... WWWWOOOORRRRDDDD CCCCOOOOMMMMPPPPLLLLEEEETTTTIIIIOOOONNNN
- In typing commands, it is no longer necessary to type a
- complete name, only a unique abbreviation is necessary.
- When you type a TAB to _t_c_s_h it will complete the name for
- you, echoing the full name on the terminal (and entering it
- into the edit buffer). If the prefix you typed matches no
- name, the terminal bell is rung, unless the variable _n_o_b_e_e_p
- is set. The name may be partially completed if the prefix
- matches several longer names. If this is the case, the name
- is extended up to the point of ambiguity, and the bell is
- rung. This works for file names, command names, shell
- variables and the ~ user name convention. The variable
- _f_i_g_n_o_r_e may be set to a list of suffixes to be disregarded
- during completion.
-
- _E_x_a_m_p_l_e
-
- Assume the current directory contained the files:
-
- DSC.TXT bin cmd lib memos
- DSC.NEW chaos cmtest mail netnews
- bench class dev mbox new
-
- The command:
-
- > gnumacs ch[TAB]
-
- would cause _t_c_s_h to complete the command with the file name
- chaos. If instead, the user had typed:
-
- > gnumacs D[TAB]
-
- _t_c_s_h would have extended the name to DSC and rung the
- terminal bell, indicating partial completion. However, if
- _f_i_g_n_o_r_e had previously been set to a list containing .NEW as
- one element, e.g. ( .o .NEW ), _t_c_s_h would have completed the
- `D' to DSC.TXT.
-
-
-
- Page 11 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- File name completion works equally well when other
- directories are addressed. Additionally, _t_c_s_h understands
- the C shell tilde (~) convention for home directories. In
- addition it caches tilde name references for fast access.
- This cache can be flushed by using the builtin _r_e_h_a_s_h. Thus,
-
- > cd ~speech/data/fr[TAB]
-
- does what one might expect. This may also be used to expand
- login names only. Thus,
-
- > cd ~sy[TAB]
-
- expands to
-
- > cd ~synthesis
-
-
- Command names may also be completed, for example,
-
- > gnum[TAB]
-
- will expand to "gnumacs" (assuming that there are no other
- commands that begin with "gnum").
-
- Shell and environment variables are recognized also and in
- addition they can be expanded:
-
- > set local=/usr/local
- > echo $lo[TAB]
-
- will expand to "$local/". Note that a slash is appended
- because the expanded variable points to a directory. Also:
-
- > set local=/usr/local
- > echo $local/[^D]
- bin/ etc/ lib/ man/ src/
-
- will correctly list the contents of /usr/local. Shell and
- environment variables can also be expanded via the expand-
- variables function:
-
- > echo $local/[^X$]
- > echo /usr/local/
-
-
- Completion also works when the cursor is in the middle of
- the line, rather than just the end. All of the text after
- the cursor will be saved, the completion will work (possibly
- adding to the current name), and then the saved text will be
- restored in place, after the cursor.
-
-
-
-
- Page 12 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- The behavior of the completion can be changed by the setting
- of several shell variables:
-
- Setting the _r_e_c_e_x_a_c_t variable makes an exact command be
- expanded rather than just ringing the bell. For example,
- assume the current directory has two sub-directories called
- foo and food, then with _r_e_c_e_x_a_c_t set the following could be
- done:
-
- > cd fo[TAB]
- to ...
- > cd foo[TAB]
- to ...
- > cd foo/
-
- rather than beeping on the second TAB.
-
- If the _a_u_t_o_l_i_s_t variable is set, invoking completion when
- several choices are possible will automatically list the
- choices, effectively merging the functionality described in
- the next section into the completion mechanism. If _a_u_t_o_l_i_s_t
- is set to "ambiguous", then _t_c_s_h will only list the choices
- if there were no new characters added in the completion
- operation.
-
-
- The "noise level" can be controlled by the value that
- _m_a_t_c_h_b_e_e_p is set to: With matchbeep=nomatch, completion will
- only beep if there are no matching names; with
- matchbeep=ambiguous, completion will _a_l_s_o beep if there are
- many possible matches; with matchbeep=notunique, completion
- will _a_l_s_o beep when there is an exact match but there are
- other, longer, matches (see recexact). With matchbeep=never
- or set to any other value completion will never beep. If
- matchbeep is not set it defaults to ambiguous.
-
- If the _a_u_t_o_e_x_p_a_n_d variable is set, the expand-history
- function will be invoked automatically before the completion
- attempt, expanding normal _c_s_h history substitutions.
-
- For covert operation, the variable _n_o_b_e_e_p can be set; it
- will prevent the completion mechanism, as well as _t_c_s_h in
- general, from actually beeping. Finally, if the _a_u_t_o_c_o_r_r_e_c_t
- variable is set, the spelling correction is attempted for
- any path components up to the completion point.
-
- 5555.... LLLLIIIISSSSTTTTIIIINNNNGGGG OOOOFFFF PPPPOOOOSSSSSSSSIIIIBBBBLLLLEEEE NNNNAAAAMMMMEEEESSSS
- At any point in typing a command, you may request "what
- names are available". Thus, when you have typed, perhaps:
-
- > cd ~speech/data/fritz/
-
-
-
-
- Page 13 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- you may wish to know what files or sub-directories exist (in
- ~speech/data/fritz), without, of course, aborting the
- command you are typing. Typing the character Control-D
- (^D), will list the names (files, in this case) available.
- The files are listed in multicolumn format, sorted column-
- wise. Directories are indicated with a trailing `/',
- executable files with a `*', symbolic links with a '@',
- sockets with a '=', FIFOs (named pipes) with a '|',
- character devices with a '%', and block devices with a '#'.
- Once printed, the command is re-echoed for you to complete.
-
- Additionally, one may want to know which files match a
- prefix. If the user had typed:
-
- > cd ~speech/data/fr[^D]
-
- all files and sub-directories whose prefix was ``fr'' would
- be printed. Notice that the example before was simply a
- degenerate case of this with a null trailing file name. (The
- null string is a prefix of all strings.) Notice also, that a
- trailing slash is required to pass to a new directory for
- both file name completion and listing.
-
- The degenerate
-
- > ~[^D]
-
- will print a full list of login names on the current system.
- Note, however, that the degenerate
-
- > <Spaces>[^D]
-
- does not list all of the commands, but only the files in the
- current working directory.
-
- Listing/expanding of words that match a name containing
- wildcard characters can be done via the list-glob/expand-
- glob function:
- > ls
- foo.c bar.c a.out
- > vi *.c[^Xg]
- foo.c bar.c
- > vi *.c[^X*]
- > vi foo.c bar.c
-
- CCCCoooommmmmmmmaaaannnndddd NNNNaaaammmmeeee RRRReeeeccccooooggggnnnniiiittttiiiioooonnnn
- Command name recognition and completion works in the same
- manner as file name recognition and completion above. The
- current value of the environment variable _P_A_T_H is used in
- searching for the command. For example
-
- > newa[TAB]
-
-
-
- Page 14 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- might expand to
-
- > newaliases
-
- Also,
-
- > new[^D]
-
- would list all commands (along PATH) that begin with "new".
-
- Note that Control-D has three different effects on _t_c_s_h. On
- an empty line (one that contains nothing, not even spaces),
- ^_D sends an EOF to _t_c_s_h just as it does for normal programs.
- When the cursor is in the middle of a line of text, ^_D
- deletes the character that the cursor is under. Finally, a
- ^_D at the end of a line of text lists the available names at
- that point. To get a list of available names when the
- cursor is in the middle of a line (or on an empty line), a
- Meta-Control-D should be typed (Escape followed by Control-
- D).
-
- 6666.... SSSSPPPPEEEELLLLLLLLIIIINNNNGGGG CCCCOOOORRRRRRRREEEECCCCTTTTIIIIOOOONNNN
- If while typing a command, the user mistypes or misspells a
- file name, user name, or command name, _t_c_s_h can correct the
- spelling. When correcting a file name, each part of the
- path is individually checked and corrected. Spelling
- correction can be invoked in several different ways:
-
- The _s_p_e_l_l-_w_o_r_d function, normally bound to M-s (and M-S),
- will attempt to correct the word immediately before the
- cursor. For example, suppose that the user has typed:
-
- > cd /uxr/spol/news[ESC s]
-
- _T_c_s_h will check the path for spelling, correct the mistakes,
- and redraw the line as
-
- > cd /usr/spool/news
-
- leaving the cursor at the end of the line.
-
- Spelling correction of the entire command line (independent
- of where the cursor is) can be done with the _s_p_e_l_l-_l_i_n_e
- function, normally bound to M-$ (Escape Dollar-sign). It
- will check each word independently, but in order to avoid
- e.g. command options, no correction is attempted on words
- whose first character is found in the string "!.\^-*%".
-
- Finally, automatic spelling correction will be done each
- time the Return key is hit, if the _c_o_r_r_e_c_t variable is set
- to an appropriate value: correct=cmd will cause the spelling
- of the command name only to be checked, while correct=all
-
-
-
- Page 15 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- causes checking of all words on the line, like the spell-
- line function. If any part of the command line is
- corrected, the user will be given a special prompt as
- defined by the _p_r_o_m_p_t_3 variable, followed by the corrected
- line, e.g.
-
- > lz /usr/bin
- CORRECT>ls /usr/bin (y|n|e)?
-
- Answering 'y' or <space> at the prompt will cause the
- corrected line to be executed, 'e' will leave the
- uncorrected command in the input buffer and anything else
- will execute the original line unchanged.
-
- Automatic correction is not guaranteed to work the way the
- user intended. Command line parsing is done in a
- rudimentary fashion. It is mostly provided as an
- experimental feature. Suggestions and improvements are
- welcome.
-
- 7777.... DDDDOOOOCCCCUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN LLLLOOOOOOOOKKKKUUUUPPPP
- The editor function _r_u_n-_h_e_l_p (M-h) prints a help file on the
- current command (using the same definition of current as the
- completion routines use). This help file is found by
- searching the path list HPATH for files of the form
- foo.help, foo.1, foo.8, or foo.6 in that order (assuming
- that the current command is foo). The file is just printed,
- not paged in any way. This is because _r_u_n-_h_e_l_p is meant to
- be used to look up short help files, not manual pages
- (although it can do manual pages also).
-
- 8888.... EEEENNNNHHHHAAAANNNNCCCCEEEEDDDD HHHHIIIISSSSTTTTOOOORRRRYYYY MMMMEEEECCCCHHHHAAAANNNNIIIISSSSMMMM
- _T_c_s_h will save the history list between login sessions. It
- does this by writing the current list to the file
- "~/.history" on logout, and reading it in on login. For
- example, placing the line
-
- > set history=25 savehist=20
-
- tells _t_c_s_h to save the last 25 commands on the history list,
- and to save the last 20 of them between logins. The
- "savehist" variable may be set up to the size of history,
- although it is an error to have _s_a_v_e_h_i_s_t larger than
- _h_i_s_t_o_r_y. In addition to the above _t_c_s_h, keeps unparsed
- (literal) versions of the history if the variable _h_i_s_t_l_i_t is
- set. Also the toggle-history function toggles between the
- parsed and literal version of the recalled history in the
- editor buffer. For example:
-
- > set histlit
- > echo !:s/foo/bar; ls
- Modifier failed.
-
-
-
- Page 16 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- > ^P
- > echo !:s/foo/bar; ls
- > unset histlit
- > echo !:s/foo/bar; ls
- Modifier failed.
- > ^P
- > echo unset histlit[M-r]
- > echo !:s/foo/bar; ls
-
- _T_c_s_h also supports the history escape !#. This undocumented
- _c_s_h escape holds the words of the current line. This is
- useful in renaming commands:
-
- > mv foo bar!#:1
- mv foo barfoo
-
- Care should be taken when using this history expansion in
- _c_s_h since there is no check for recursion. In _t_c_s_h up to 10
- levels of recursion are allowed.
-
- Another difference between _t_c_s_h and _c_s_h history expansion,
- is the treatment of history arguments. In _c_s_h !_3_d expands to
- event 3 with the letter "d" appended to it. There is no way
- to repeat a command that begins with a number using the name
- of the command in the history escape. In _t_c_s_h only numeric
- arguments are treated as event numbers; therefore !_3_d is
- interpreted as: repeat the last command that started with
- the string "3d". To mimic the _c_s_h behavior !_3_\_d can be used.
-
-
- 9999.... AAAAUUUUTTTTOOOOMMMMAAAATTTTIIIICCCC LLLLOOOOGGGGOOOOUUUUTTTT////LLLLOOOOCCCCKKKKIIIINNNNGGGG
- The automatic locking and logout time are controlled by the
- variable _a_u_t_o_l_o_g_o_u_t. The value of the first word is the
- number of minutes of inactivity will be allowed before
- automatically logging the user out. When that many minutes
- have been reached, the shell prints "auto-logout" and dies
- (without executing ~/.logout). The default for _t_c_s_h is to
- set _a_u_t_o_l_o_g_o_u_t for 60 minutes on login shells, and when the
- user is root. To disable autologout (for instance in a
- window system), unset the shell variable _a_u_t_o_l_o_g_o_u_t.
-
- The value of the optional second word indicates the number
- of minutes of inactivity after which the user will be
- prompted for his login password to continue working. Failure
- to enter the correct password 5 times, results in auto-
- logout.
-
- 11110000.... EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN OOOOFFFF AAAA CCCCOOOOMMMMMMMMAAAANNNNDDDD PPPPRRRRIIIIOOOORRRR TTTTOOOO EEEEAAAACCCCHHHH PPPPRRRROOOOMMMMPPPPTTTT
- _T_c_s_h supports a special alias, _p_r_e_c_m_d, which if set holds a
- command that will be executed before printing each prompt.
- For example, if the user has done
-
-
-
-
- Page 17 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- > alias precmd date
-
- then the program _d_a_t_e will be run just before the shell
- prompts for each command. There are no limitations on what
- precmd can be set to do, although discretion should be used.
-
- 11111111.... PPPPEEEERRRRIIIIOOOODDDDIIIICCCC CCCCOOOOMMMMMMMMAAAANNNNDDDD EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN
- _T_c_s_h is now capable of providing periodic command execution
- through the use of the shell variable _t_p_e_r_i_o_d and the alias
- _p_e_r_i_o_d_i_c. When these items are set, the alias _p_e_r_i_o_d_i_c will
- be executed every _t_p_e_r_i_o_d minutes. This provides a
- convenient means for checking on common but infrequent
- changes, such as new messages. Example:
-
- > set tperiod = 30
- > alias periodic checknews
-
- This will cause the _c_h_e_c_k_n_e_w_s(1) program to be run every 30
- minutes. Having the alias _p_e_r_i_o_d_i_c set but with an unset
- _t_p_e_r_i_o_d (or a value of 0 for _t_p_e_r_i_o_d) will cause _p_e_r_i_o_d_i_c to
- degenerate to another form of _p_r_e_c_m_d.
-
- 11112222.... NNNNEEEEWWWW PPPPRRRROOOOMMMMPPPPTTTT FFFFOOOORRRRMMMMAAAATTTT
- The format for the _p_r_o_m_p_t shell variable has been changed to
- include many new things, such as the current time of day,
- current working directory, etc.. The new format uses
- "%<char>" to signal an expansion, much like _p_r_i_n_t_f(_3_S). The
- available sequences are:
-
- %/ Current working directory.
- %~ cwd. If it starts with $HOME, that part is
- replaced by a ~. In addition if a directory
- name prefix matches a user's home directory,
- that part of the directory will be substituted
- with ~user. NOTE: The ~user substitution will
- only happen if the shell has performed a ~
- expansion for that user name in this session.
- %c or %. Trailing component of cwd, may be
- followed by by a digit to get more than one
- component, if it starts with $HOME, that
- part is replaced with a ~.
- %C Trailing component of cwd, may be followed
- by a digit to get more than one component, no
- ~ substitution.
- %h, %!, ! Current history event number.
- %M The full machine hostname.
- %m The hostname up to the first ".".
- %S (%s) Start (stop) standout mode.
- %B (%b) Start (stop) boldfacing mode. (Only if
- tcsh was compiled to be eight bit clean.)
- %U (%u) Start (stop) underline mode. (Only if
- tcsh was compiled to be eight bit clean.)
-
-
-
- Page 18 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- %t or %@ Current time of day, in 12-hour, am/pm format.
- %T Current time of day, in 24-hour format.
- (But see the _a_m_p_m shell variable below.)
- %p Current time in 12-hour format, am/pm format with seconds.
- %P Current time in 24-hour format, with seconds.
- \c `c' is parsed the same way as in bindkey.
- ^c `c' is parsed the same way as in bindkey.
- %% A single %.
- %n The user name, contents of $user.
- %d The weekday in <Day> format.
- %D The day in dd format.
- %w The month in <Mon> format.
- %W The month in mm format.
- %y The year in yy format.
- %Y The year in yyyy format.
- %l The line (tty) the user is logged on.
- %L clear from prompt to end of display or end of line.
- %# A `#' if tcsh is run as a root shell,
- a `>' if not.
- %{..%} Include string as a literal escape sequence.
- Note that the enclosed escape sequence, should
- only be used to change terminal attributes and
- should not move the cursor location. Also, this
- cannot be the last character in the prompt
- string. (Available only if tcsh was compiled to
- be eight bit clean.)
- %? return code of the last command executed just
- before the prompt.
- %R In prompt3 this is the corrected string; in
- prompt2 it is the status of the parser.
-
- On %C, %c and %., if the optional digit is 0, then then next
- digit is interpreted as the number of directory components
- to be skipped, and the number of components skipped are
- reported as: /<num-skipped>path/path.
-
- The sequences for standout are often used to indicate that
- this is an enabled (running as root) shell. An example:
-
- > set prompt="%m [%h] %U[%@]%u [%/] you rang? "
- tut [37] [_2:_5_4_p_m] [/usr/accts/sys] you rang? _
-
- In addition, there is a new variable, _p_r_o_m_p_t_2, which is used
- to prompt for the body of while and for loops (wherever
- normal _c_s_h prompts with a question mark). The default for
- _p_r_o_m_p_t_2 is "%R? ": the status of the parser followed by a
- question mark. This alternate prompt is also used when the
- parser is waiting for more input; i.e. when the previous
- line ended in a \. The _p_r_o_m_p_t_3 variable is used when
- displaying the corrected command line when automatic
- spelling correction is in effect; it defaults to "CORRECT>%R
- (y|n|e)? ".
-
-
-
- Page 19 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- 11113333.... TTTTIIIIMMMMEEEE----SSSSTTTTAAAAMMMMPPPPEEEEDDDD HHHHIIIISSSSTTTTOOOORRRRYYYY LLLLIIIISSSSTTTT
- The history list in _t_c_s_h now has a time-of-day stamp
- attached to each history list event. This time stamp is
- printed whenever the history command is executed. This
- allows the user to keep track of when the various events
- occurred. The time stamps are not maintained on the saved
- history list (also available in _c_s_h); thus, on logging back
- in, all the saved history events will be recorded with the
- login time as their time stamp. The time stamp printouts
- can be omitted from the history list by adding the -t switch
- to the _h_i_s_t_o_r_y command. _T_c_s_h provides a way to save,
- restore and clear the history list in a file.
-
- _h_i_s_t_o_r_y -_S [<_f_i_l_e_n_a_m_e>]
- _h_i_s_t_o_r_y -_L [<_f_i_l_e_n_a_m_e>]
- _h_i_s_t_o_r_y -_c
-
- The 'S' flag saves the current history, the 'L' flags loads
- the history, and the 'c' flag clears the history. If a
- filename is not specified, then $HOME/.history is used.
-
- 11114444.... DDDDIIIIRRRREEEECCCCTTTTOOOORRRRYYYY AAAACCCCCCCCEEEESSSSSSSS
- _T_c_s_h supports three new flags to control directory style
- printing for cd, pushd, popd, and dirs:
-
- -_n Print entries in new lines so that the screen width is
- not exceeded
-
- -_l Don't print ~ but print the whole path
-
- -_v Print the stack entries one in each line, preceded by
- the stack number.
-
- Note that popd +n can be used to pop out stack entries of
- directories that do not exist any more.
-
- _T_c_s_h always saves the last directory visited. Changing to
- the previous directory can be done by using '_c_d -' or '_p_u_s_h_d
- -'.
-
- _T_c_s_h will now allow the user to access all elements in the
- directory stack directly. The syntax "=<digit>" is
- recognized by _t_c_s_h as indicating a particular directory in
- the stack. (This works for the file/command name
- recognition as well.) This syntax is analogous to the ~
- syntax for access to users' home directories. The stack is
- viewed as zero-based, i.e., =0 is the same as $cwd, which is
- the same as ".". As a special case, the string "=-" is
- recognized as indicating the last directory in the stack.
- Thus,
-
- > dirs -v
-
-
-
- Page 20 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- 0 /usr/net/bin
- 1 /usr/spool/uucp
- 2 /usr/accts/sys
- > echo =2
- /usr/accts/sys
- > ls -l =1/LOGFILE
- -rw-r--r-- 1 uucp 2594 Jan 19 09:09 /usr/spool/uucp/LOGFILE
- > echo =-/.cs*
- /usr/accts/sys/.cshrc
- > echo =4
- Not that many dir stack entries.
- >
-
- _T_c_s_h will complain if you ask for a directory stack item
- which does not exist.
-
- In the normal _c_s_h, saying "pushd +2" would rotate the entire
- stack around through 2 stack elements, placing the entry
- found there at the top of the stack. If, however, the new
- shell variable _d_e_x_t_r_a_c_t is set, then issuing "pushd +n" will
- cause the nth directory stack element to be extracted from
- its current position, which will then be pushed onto the top
- of the stack. Example:
-
- > dirs
- ~ /usr/spool/uucp /usr/net/bin /sys/src
- > set dextract
- > pushd +2
- /usr/net/bin ~ /usr/spool/uucp /sys/src
- > unset dextract
- > pushd +2
- /usr/spool/uucp /sys/src /usr/net/bin ~
-
- _T_c_s_h provides a way to save, restore and clear the directory
- stack in a file.
-
- _d_i_r_s -_S [<_f_i_l_e_n_a_m_e>]
- _d_i_r_s -_L [<_f_i_l_e_n_a_m_e>]
- _d_i_r_s -_c
-
- The 'S' flag saves the current directory stack, the 'L'
- flags loads the directory stack, and the 'c' flag clears the
- directory stack. If a filename is not specified, then
- $HOME/.cshdirs is used.
-
- In addition, if the shell variable _d_u_n_i_q_u_e is set, only
- directories that are not already in the directory stack will
- be added when _p_u_s_h is invoked.
-
- The way symbolic links that point to directories are crossed
- is determined by the _s_y_m_l_i_n_k_s variable. By default, it is
- not set to anything and symbolic links are not treated
-
-
-
- Page 21 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- specially. However, it can be set to either: _c_h_a_s_e, _i_g_n_o_r_e,
- or _e_x_p_a_n_d. If _s_y_m_l_i_n_k_s is set to _c_h_a_s_e, then every time the
- directory changes, $_c_w_d reflects the real directory name,
- and not the name through the link. A notable exception is
- the user's home directory, but that should be fixed. If
- _s_y_m_l_i_n_k_s is set to either _i_g_n_o_r_e or _e_x_p_a_n_d, then tcsh tries
- to determine the current directory name relative to the name
- of the current directory before the link was crossed. In
- simple terms, if you chdir through a symbolic link and then
- cd .., you will end .. relatively to where you were before
- you crossed the link and not .. relatively to where the
- symbolic link points. While _i_g_n_o_r_e affects only builtin
- commands and completion, _e_x_p_a_n_d affects command execution
- too, by `fixing' arguments that it considers to be path
- names. Unfortunately this does not work in every case,
- specially when file arguments are embedded in command line
- options. _E_x_p_a_n_d also allows to specify the `real' (as
- opposed to the one determined relatively to $_c_w_d), _b_y
- _q_u_o_t_i_n_g _t_h_e _f_i_l_e _a_r_g_u_m_e_n_t.
-
- For example:
-
- > cd /tmp
- > mkdir from from/src to
- > ln -s ../from/src to/dst
-
- > unset symlinks
- > cd /tmp/to/dst; echo $cwd
- /tmp/to/dst
- > cd ..; echo $cwd
- /tmp/from
-
- > set symlinks=chase
- > cd /tmp/to/dst; echo $cwd
- /tmp/from/src
- > cd ..; echo $cwd
- /tmp/from
-
- > set symlinks=ignore
- > cd /tmp/to/dst; echo $cwd
- /tmp/to/dst
- > cd ..; echo $cwd
- /tmp/to
-
- > set symlinks=expand
- > cd /tmp/to/dst; echo $cwd
- /tmp/to/dst
- > cd ..; echo $cwd # builtin
- /tmp/to
- > cd /tmp/to/dst; echo $cwd
- /tmp/to/dst
- > cd ".."; echo $cwd # quoted
-
-
-
- Page 22 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- /tmp/from
- > /bin/echo .. # rewrites non builtin commands.
- /tmp/to
- > /bin/echo ".."
-
- While the _e_x_p_a_n_d setting is the most convenient, and makes
- symbolic links invisible, it can sometimes be misleading and
- confusing in cases where it fails to recognize arguments. A
- compromise is to use the _i_g_n_o_r_e setting and use the editor
- functions "normalize-path", bound by default to ^_X_n.
-
- 11115555.... WWWWAAAATTTTCCCCHHHHIIIINNNNGGGG FFFFOOOORRRR LLLLOOOOGGGGIIIINNNNSSSS AAAANNNNDDDD LLLLOOOOGGGGOOOOUUUUTTTTSSSS
- _T_c_s_h has a mechanism so that the user can watch for login
- and logout activity of any user or terminal in the system.
- This is accomplished using the new special shell variable
- _w_a_t_c_h, which contains login/terminal pattern pairs to be
- checked for activity. For example:
-
- > set watch=(sys ttyjd root console)
-
- This setting will allow the user to check on when the user
- "sys" logs in on /dev/ttyjd. Similarly, it will inform the
- user of root's activity on the console. In order to be more
- general, the word "any" may be substituted for either a
- user's or a terminal's name, thus allowing
-
- > set watch=('b*' any any ttyh0)
-
- which will check for users that match the pattern 'b*'
- logging in or out of the system on any terminal, as well as
- anyone logging in to /dev/ttyh0. Naturally, the completely
- general case
-
- > set watch=(any any)
-
- allows the user to check on any and all login/logout
- activity in the the system.
-
- By default, the interval between checks of users on the
- system is 10 minutes; this can be changed by making the
- first element of _w_a_t_c_h a number of minutes which should be
- used instead, as in
-
- > set watch=(40 any any)
-
- which will check for any users logging in or out every 40
- minutes.
-
- There is also a new command, _l_o_g, which is used to cause
- _t_c_s_h to inform the user of all users/terminals affected by
- _w_a_t_c_h whether they have been announced before or not. This
- is useful if a user has been on for some time and cannot
-
-
-
- Page 23 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- remember if a particular person/terminal is online right now
- or not. _L_o_g will reset all indication of previous
- announcement and give the user the login list all over
- again, as well as printing the current value of _w_a_t_c_h.
-
- The first time that _w_a_t_c_h is set at _t_c_s_h startup, all
- affected users and terminals will be printed as though those
- users/terminals had just logged on. This may appear to be a
- bug, but is generally considered a feature, since it allows
- the user to see who is on when he first logs in.
-
- The format of the printouts can be tailored via setting of
- the variable _w_h_o. In addition to the standard prompt %
- escapes, the following sequences are available for the
- format specification:
-
- %n The name of the user that logged in/out.
- %a The observed action, i.e. "logged on",
- "logged off", or "replaced <olduser> on".
- %l The line (tty) the user is logged on.
- %M The full hostname of the remote host ("local"
- if non-remote).
- %m The hostname up to the first ".". If only
- the ip address is available or the utmp
- field contains the name of an x-windows
- display, the whole name is printed.
-
- The %M and %m sequences are only available on systems that
- store the remote hostname in /etc/utmp. If _w_h_o is not set,
- the format defaults to "%n has %a %l from %m.", or "%n has
- %a %l." on systems that don't store the hostname.
-
- 11116666.... TTTTIIIIMMMMEEEEDDDD EEEEVVVVEEEENNNNTTTT LLLLIIIISSSSTTTT
- _T_c_s_h now supports a scheduled-event list through the use of
- the command _s_c_h_e_d. This command gives the user a mechanism
- by which to arrange for other commands to be executed at
- given times. An event is added to the scheduled-event list
- by saying
-
- > sched [+]hh:mm <command>
-
- as in
-
- > sched 11:00 echo It\'s eleven o\'clock.
-
- This will make an entry in the list at 11am for the echo
- command to be run with the given arguments. The time may be
- specified in either absolute or relative time, and absolute
- times may have a morning/afternoon specification as well,
- using "am" or "pm." For example,
-
- > sched +2:15 /usr/lib/uucp/uucico -r1 -sother
-
-
-
- Page 24 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- > sched 5pm set prompt='[%h] It\'s after 5; go home: >'
- > sched +3am echo This syntax doesn\'t work.
- Relative time inconsistent with am/pm.
- >
-
- Note that _t_c_s_h will complain if you try to make faulty time
- specifications.
-
- Printing the current time-event list is accomplished by
- giving the _s_c_h_e_d command with no arguments:
-
- > sched
- 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico -r1 -sother
- 2 Wed Apr 4 17:00 set prompt=[%h] It's after 5; go home: >
- >
-
- There is also a mechanism by which the user can remove an
- item from the list:
-
- > sched --3
- Usage for delete: sched -<item#>.
- > sched -3
- Not that many scheduled events.
- > sched -2
- > sched
- 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico -r1 -sother
- >
-
- All commands specified on the scheduled-event list will be
- executed just prior to printing the first prompt immediately
- following the time when the command is to be run. Hence, it
- is possible to miss the exact time when the command is to be
- run, but _t_c_s_h will definitely get around to all commands
- which are overdue at its next prompt. Scheduled-event list
- items which come due while _t_c_s_h is waiting for user input
- will be executed immediately. In no case, however, will
- normal operation of already-running commands be interrupted
- so that a scheduled-event list element may be run.
-
- This mechanism is similar to, but not the same as, the _a_t(1)
- command on some Unix systems. Its major disadvantage is
- that it does not necessarily run a command at exactly the
- specified time (but only if another command is already being
- run). Its major advantage is that commands which run
- directly from _t_c_s_h, as sched commands are, have access to
- shell variables and other structures. This provides a
- mechanism for changing one's working environment based on
- the time of day.
-
- 11117777.... BBBBUUUUIIIILLLLTTTTIIIINNNN FFFFOOOORRRR llllssss ----FFFF
- There is a new builtin command called _l_s-_F which does the
- same thing as the command "ls -F". If the shell variable
-
-
-
- Page 25 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- _s_h_o_w_d_o_t_s has been set, it acts like "ls -aF". If _s_h_o_w_d_o_t_s is
- equal to "-A", then _l_s-_F acts like "ls -AF". Ls-F works like
- ls, only it is generally faster, since it does not need to
- fork and exec, and safer against Trojan horses if the user
- has `.' in the execution path. If other switches are passed
- to _l_s-_F, then the normal ls is executed. Aliasing ls to ls-F
- provides a fast alternative way of listing files. Note that
- on non BSD machines, where ls -C is not the default, _l_s-_F,
- behaves like ls -CF.
-
- _l_s-_F appends the following characters depending on the file
- type:
-
- = File is an AF_UNIX domain socket.
- [if system supports sockets]
- | File is a named pipe (fifo)
- [if system supports named pipes]
- % File is a character device
- # File is a block device
- / File is a directory
- * File is executable
- + File is a hidden directory [aix]
- or context dependent [hpux]
- : File is network special [hpux]
-
- On systems that support symbolic links the variable
- _l_i_s_t_l_i_n_k_s controls the way symbolic links are identified. If
- _l_i_s_t_l_i_n_k_s is not set then the character '@' is appended to
- the file. If _l_i_s_t_l_i_n_k_s is set then the following characters
- are appended to the filename depending on the type of file
- the symbolic links points to:
-
- @ File is a symbolic link pointing
- to a non-directory
- > File is a symbolic link pointing
- to a directory
- & File is a symbolic link pointing
- to nowhere
-
- While setting _l_i_s_t_l_i_n_k_s can be helpful while navigating
- around the file system, it slows down _l_s-_F and it causes
- mounting of file systems if the symbolic links point to an
- NFS auto-mounted partition.
-
- 11118888.... GGGGLLLLOOOOBBBBBBBBIIIINNNNGGGG SSSSYYYYNNNNTTTTAAAAXXXX AAAADDDDDDDDIIIITTTTIIIIOOOONNNNSSSS
- The syntax for any character in a range (for example ".[a-
- z]*") has been extended so as to conform with standard Unix
- regular expression syntax (see _e_d(1)). Specifically, after
- an open bracket ("["), if the first character is a caret
- ("^") then the character matched will be any not in the
- range specified. For example:
-
-
-
-
- Page 26 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- > cd ~
- > echo .[a-z]*
- .cshrc .emacs .login .logout .menuwmrc
- > echo .[^.]*
- .Xdefaults .Xinit .cshrc .emacs .login .logout .menuwmrc
- >
-
- Note that the second form includes .Xdefaults and .Xinit
- because 'X' (and all the lower case letters) are outside of
- the range of a single '.'.
-
- Also the ability to negate a globbing pattern has been
- added:
-
- > echo *
- foo foobar bar barfoo
- > echo ^foo*
- bar barfoo
-
- Note that this does not work correctly if the expression
- does not have any wildcard characters (?*[]) or if the
- expression has braces {}.
-
- 11119999.... NNNNEEEEWWWW EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT AAAANNNNDDDD SSSSHHHHEEEELLLLLLLL VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
- On startup, _t_c_s_h now automatically initializes the
- environment variable _H_O_S_T to the name of the machine that it
- is running on. It does this by doing a _g_e_t_h_o_s_t_n_a_m_e(2)
- system call, and setting _H_O_S_T to the result.
-
- _T_c_s_h also initializes the environment variable _H_O_S_T_T_Y_P_E to a
- symbolic name for the type of computer that it is running
- on. This is useful when sharing a single physical directory
- between several types of machines (running NFS, for
- instance). For example, if the following is in ._l_o_g_i_n:
-
- set path = (~/bin.$HOSTTYPE /usr/ucb /bin /usr/bin
- /usr/games .)
-
- and the user has directories named "bin._m_a_c_h_i_n_e" (where
- _m_a_c_h_i_n_e is a name from the list below), then the user can
- have the same programs compiled for different machines in
- the appropriate "bin._m_a_c_h_i_n_e" directories and _t_c_s_h will run
- the binary for the correct machine.
-
- The current possible values are:
-
- _3_8_6_B_S_D an Intel 386, running 386BSD
- _a_i_x_3_7_0 an IBM 370, running aix
- _a_i_x_E_S_A an IBM ESA, running aix
- _a_l_l_i_a_n_t an Alliant FX series
- _a_l_l_i_a_n_t-_f_x_8_0 an Alliant FX80 (mc68000 based)
- _a_l_l_i_a_n_t-_f_x_2_8_0_0 an Alliant FX2800 (i860 based)
-
-
-
- Page 27 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- _a_l_p_h_a an DEC Alpha running OSF/1
- _a_m_d_a_h_l an Amdahl running uts 2.1
- _a_m_i_g_a an amiga running amix 2.02
- _a_p_o_l_l_o an Apollo running DomainOS
- _a_t_t_3_b_1_5 an AT&T 3b15
- _a_t_t_3_b_2 an AT&T 3b2
- _a_t_t_3_b_2_0 an AT&T 3b20
- _a_t_t_3_b_5 an AT&T 3b5
- _b_a_l_a_n_c_e a Sequent Balance (32000 based)
- _b_s_d_3_8_6 an Intel 386, running BSDI's bsd386
- _b_u_t_t_e_r_f_l_y a BBN Computer Butterfly 1000
- _c_o_h_3_8_6 a 386 running Coherent 4.0
- _c_o_h_e_r_e_n_t an unknown machine running Coherent
- _c_o_n_v_e_x a Convex
- _c_r_a_y a Cray running Unicos
- _d_e_c_s_t_a_t_i_o_n a DecStation XXXX
- _e_t_a_1_0 an ETA 10 running SVR3
- _g_o_u_l_d-_n_p_1 a Gould NP1
- _h_k_6_8 a Heurikon HK68 running Uniplus+ 5.0
- _h_p_3_0_0 an HP 9000, series 300, running mtXinu
- _h_p_8_0_0 an HP 9000, series 800, running mtXinu
- _h_p_9_0_0_0_s_3_0_0 an HP 9000, series 300, running hpux
- _h_p_9_0_0_0_s_5_0_0 an HP 9000, series 500, running hpux
- _h_p_9_0_0_0_s_7_0_0 an HP 9000, series 700, running hpux
- _h_p_9_0_0_0_s_8_0_0 an HP 9000, series 800, running hpux
- _h_p an HP, running hpux
- _i_3_8_6 an Intel 386, generic
- _i_3_8_6-_m_a_c_h an Intel 386, running mach
- _i_3_8_6-_l_i_n_u_x an Intel 386, running Linux
- _i_3_8_6-_e_m_x an Intel 386, running emx [unix emulation under OS/2]
- _i_n_t_e_l_3_8_6 an Intel 386, running INTEL's SVR3
- _i_r_i_s_3_d a Silicon Graphics Iris 3000
- _i_r_i_s_4_d a Silicon Graphics Iris 4D
- _i_s_c_3_8_6 an Intel 386, running ISC
- _l_y_n_x_o_s-_i_3_8_6 _A_n _I_n_t_e_l _3_8_6 _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
- _l_y_n_x_o_s-_i_8_6_0 _A_n _I_n_t_e_l _8_6_0 _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
- _l_y_n_x_o_s-_m_6_8_k _A _M_o_t_o_r_o_l_a _6_8_K _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
- _l_y_n_x_o_s-_m_8_8_k _A _M_o_t_o_r_o_l_a _8_8_K _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
- _l_y_n_x_o_s-_s_p_a_r_c _A _s_p_a_r_c _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
- _l_y_n_x_o_s-_m_i_p_s _A _m_i_p_s _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
- _l_y_n_x_o_s-_u_n_k_n_o_w_n _S_o_m_e_t_h_i_n_g _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
- _m_8_8_k an mc88000 CPU machine
- _m_a_c_2 an Apple Computer Macintosh II, running AUX
- _m_a_s_s_c_o_m_p a Concurrent (Masscomp), running RTU
- _m_i_n_i_x_3_8_6 an i386 running minix
- _m_i_n_i_x a mac or an amiga running minix
- _m_i_p_s another mips CPU
- _m_u_l_t_i_m_a_x an Encore Computer Corp. Multimax (32000 based)
- _n_e_w_s a Sony NEWS 800 or 1700 workstation
- _n_e_w_s__m_i_p_s a NeWS machine with mips CPU
- _n_d_5_0_0 a Norsk Data ND 500/5000 running Ndix
- _n_s_3_2_0_0_0 an NS32000 CPU machine
-
-
-
- Page 28 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- _n_e_x_t a NeXT computer
- _p_a_r_a_g_o_n an intel paragon running osf1
- _p_f_a_5_0 a PFU/Fujitsu A-xx computer
- _p_s_2 an IBM PS/2, running aix
- _p_t_x a Sequent Symmetry running DYNIX/ptx (386/486 based)
- _p_y_r_a_m_i_d a Pyramid Technology computer (of any flavor)
- _r_s_6_0_0_0 an IBM RS6000, running aix
- _r_t an IBM PC/RT, running BSD (AOS 4.3) or mach
- _r_t_p_c an IBM PC/RT, running aix
- _s_c_o_3_8_6 an Intel 386, running SCO
- _s_t_e_l_l_a_r a stellar running stellix
- _s_u_n a Sun workstation of none of the above types
- _s_u_n_2 a Sun Microsystems series 2 workstation (68010 based)
- _s_u_n_3 a Sun Microsystems series 3 workstation (68020 based)
- _s_u_n_3_8_6_i a Sun Microsystems 386i workstation (386 based)
- _s_u_n_4 a Sun Microsystems series 4 workstation (SPARC based)
- _s_y_m_m_e_t_r_y a Sequent Symmetry running DYNIX 3 (386/486 based)
- _s_y_s_V_8_8 a Motorola MPC running System V/88 R32V2 (SVR3/88100 based)
- _t_a_h_o_e a tahoe running 4BSD
- _t_e_k_4_3_0_0 a Tektronix 4300 running UTek (BSD 4.2 / 68020 based)
- _t_e_k_X_D_8_8 a Tektronix XD88/10 running UTekV 3.2e (SVR3/88100 based)
- _t_i_t_a_n an Stardent Titan
- _u_n_i_x_p_c an UNIX/PC running SVR1 att7300 aka att3b1
- _v_a_x a Digital Equipment Corp. Vax (of any flavor)
- _v_i_s_t_r_a_8_0_0 a Stardent Vistra 800 running SVR4
- _V_M_S-_P_O_S_I_X a vax? running VMS/POSIX
-
- (The names of the machines are usually trade marks of the
- corresponding companies.)
-
- _T_c_s_h also initializes the shell variables _u_i_d and _g_i_d to the
- value of the current real user ID/GID. This is useful for
- telling what user/group the shell is running as. Under
- Domain/OS _t_c_s_h will also set _o_i_d indicating the current real
- organization id.
-
- 22220000.... CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS FFFFOOOORRRR DDDDEEEEBBBBUUUUGGGGGGGGIIIINNNNGGGG
- Only two such commands are available at this point, both
- concerned with testing termcap entries.
- _t_e_l_l_t_c tells you, politely, what _t_c_s_h thinks of your
- terminal, and _s_e_t_t_c `cap' `value' tells _t_c_s_h to believe that
- the termcap capability `cap' ( as defined in _t_e_r_m_c_a_p(5) )
- has the value `value'. No checking for sanity is performed,
- so beware of improper use.
-
- Note that Concept terminal users may have to "settc xn no"
- to get proper wrapping at the rightmost column.
-
- 22221111.... SSSSEEEEAAAARRRRCCCCHHHHIIIINNNNGGGG FFFFOOOORRRR TTTTHHHHEEEE VVVVIIIISSSSUUUUAAAALLLL HHHHIIIISSSSTTTTOOOORRRRYYYY
- Four new editor functions have been added in emacs mode: Two
- of them, history-search-backward, bound to M-p (and M-P),
- and history-search-forward, bound to M-n (and M-N),
-
-
-
- Page 29 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- implement a conventional search mechanism, while the other
- two, i-search-back and i-search-fwd, both unbound by
- default, implement the emacs-style incremental search.
-
- History-search-backward (history-search-forward) searches
- backward (forward) through the history list for previous
- (next) occurrence of the beginning of the input buffer as a
- command. That is, if the user types:
-
- > echo foo
- foo
- > ls
- filea fileb
- > echo bar
- bar
- >
-
- and then types "echo<ESC>p", the shell will place "echo bar"
- in the editing buffer. If another _M-_p was entered, the
- editing buffer would change to "echo foo". This capability
- is compatible with the plain visual history; if the user
- were to then enter ^_P the editing buffer would be changed to
- "ls". The pattern used to search through the history is
- defined by the characters from the beginning of the line up
- to the current cursor position and may contain a shell
- globbing pattern. Successive history searches use the same
- pattern.
-
- When the incremental search functions are used, a prompt -
- "bck:" or "fwd:", depending on the chosen direction -
- appears, and characters typed are appended to the search
- pattern. The matching command line is placed in the editing
- buffer, with the cursor positioned at the point where the
- pattern was found (the incremental search will also do
- searching within a command line). If the search fails, the
- terminal bell is rung, and the ':' in the prompt is changed
- to '?'.
-
- If these functions are bound to single characters, and one
- of those is typed again during the incremental search, the
- search continues in the corresponding direction, with the
- pattern unchanged; if the previous search failed, this will
- also cause it to "wrap around" the history list. Finally,
- the following characters also have a special meaning during
- the search:
-
- Delete (or any character bound to _b_a_c_k_w_a_r_d-_d_e_l_e_t_e-_c_h_a_r)
- Undo the effect of the last character typed,
- deleting a character from the pattern if appropriate.
- ^G Abort the search, back to the last successful one
- if previous search failed, otherwise entire search.
- ^W Append the rest of the current word to the pattern.
-
-
-
- Page 30 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- ESC Terminate the search, leaving current line in buffer.
-
- Any other character, that isn't bound to _s_e_l_f-_i_n_s_e_r_t-
- _c_o_m_m_a_n_d, terminates the search, leaving the current command
- line in the editing buffer, after which _t_c_s_h interprets the
- character as if it was normal input - notably _R_e_t_u_r_n will
- cause the current command line to be executed.
-
- In vi mode "vi-search-fwd" (bound to '/') and "vi-search-
- back" (bound to '?') can be used to search the visual
- history. In command mode '/' or '?' followed by a shell
- pattern, searches the visual history for the pattern. The
- pattern can be terminated either with a _R_e_t_u_r_n, in which
- case the matched history event is placed in the command
- buffer or an _E_s_c_a_p_e, in which case the matched history event
- is executed. If no history event matches the shell pattern
- then the bell is rung.
-
- 22222222.... BBBBUUUUIIIILLLLTTTTIIIINNNN WWWWHHHHIIIICCCCHHHH((((1111))))////WWWWHHHHEEEERRRREEEE CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
- There is now a builtin version of the _w_h_i_c_h(1) command. The
- builtin version is just like the original, except that it
- correctly reports aliases peculiar to this _t_c_s_h, and builtin
- commands. The only other difference is that the builtin
- runs somewhere between 10 and 100 times faster. There is
- also a key-function interface to this command: the _w_h_i_c_h-
- _c_o_m_m_a_n_d function (normally bound to M-?), can be used
- anywhere on the command line, and will in effect do a
- 'which' on the command name.
-
- Similarly where will report all known instances of the
- command: aliases, builtins, as well as all references in the
- path.
-
- 22223333.... RRRREEEESSSSTTTTAAAARRRRTTTTIIIINNNNGGGG AAAA SSSSTTTTOOOOPPPPPPPPEEEEDDDD EEEEDDDDIIIITTTTOOOORRRR
- There is another new editor function: run-fg-editor, which
- is bound to _M-^_Z. When typed, it saves away the current
- input buffer, and looks for a stopped job with a name equal
- to the file name part (last element) of either the EDITOR or
- VISUAL environment variables (if not defined, the default
- names are "ed" and "vi" respectively). If such a job is
- found, then it is restarted as if "fg %_n_a_m_e" had been typed.
- This is used to toggle back and forth between an editor and
- the shell easily. Some people bind this function to ^_Z so
- they can do this even more easily.
-
- 22224444.... SSSSTTTTAAAATTTTUUUUSSSS LLLLIIIINNNNEEEE SSSSUUUUPPPPPPPPOOOORRRRTTTT
- _T_c_s_h has a new builtin called _e_c_h_o_t_c that allows the user to
- access the terminal capabilities from the command line,
- similar to the system V _t_p_u_t(1).
-
- > echotc home
-
-
-
-
- Page 31 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- Places the cursor at the home position and
-
- > echotc cm 3 10
-
- places the cursor at column 3 row 10. This command replaces
- the _e_l and _s_l variables that used contain the escape
- sequences to begin and end status line changes. The command:
-
- > echo $sl this is a test $el
-
- is replaced by:
-
- > echotc ts 0; echo "this is a test"; echotc fs
-
- In addition _e_c_h_o_t_c understands the arguments _b_a_u_d, _l_i_n_e_s,
- _c_o_l_s, _m_e_t_a, and _t_a_b_s And prints the baud rate, the number of
- lines and columns, and "yes" or "no" depending if the
- terminal has tabs or a meta key. This can be useful in
- determining how terse the output of commands will be
- depending on the baud rate, or setting limits to commands
- like history to the highest number so that the terminal does
- not scroll:
-
- > set history=`echotc lines`
- > @ history--
-
- Note: Termcap strings may contain wildcard characters, and
- echoing them will not work correctly. The suggested method
- of setting shell variables to terminal capability strings is
- using double quotes, as in the following example that places
- the date in the status line:
-
- > set tosl="`echotc ts 0`"
- > set frsl="`echotc fs`"
- > echo -n "$tosl";date; echo -n "$frsl"
-
- _E_c_h_o_t_c accepts two flags. The flag -_v enables verbose
- messages and the flag -_s ignores any errors and returns the
- empty string if the capability is not found.
-
-
- 22225555.... EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN OOOOFFFF AAAA CCCCOOOOMMMMMMMMAAAANNNNDDDD AAAAFFFFTTTTEEEERRRR CCCCHHHHAAAANNNNGGGGIIIINNNNGGGG TTTTHHHHEEEE CCCCUUUURRRRRRRREEEENNNNTTTT WWWWOOOORRRRKKKKIIIINNNNGGGG
- DDDDIIIIRRRREEEECCCCTTTTOOOORRRRYYYY
- _T_c_s_h now supports a special alias, _c_w_d_c_m_d, which if set
- holds a command that will be executed after changing the
- value of $cwd. For example, if the user is running on an X
- window system _x_t_e_r_m(_1), and a re-parenting window manager
- that supports title bars such as _t_w_m(_1) _a_n_d _h_a_s _d_o_n_e:
-
- > alias cwdcmd 'echo -n "^[]2;${HOST}:$cwd ^G"'
-
- then the shell will change the title of the running _x_t_e_r_m(_1)
-
-
-
- Page 32 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- to be the name of the host, a colon, and the full current
- working directory. A more fancy way to do that is:
-
- > alias cwdcmd 'echo -n
- "^[]2;${HOST}:$cwd^G^[]1;${HOST}^G"'
-
- This will put the hostname and working directory on the
- title bar but only the hostname in the icon manager menu.
- Note that if a user defines _c_w_d_c_m_d to contain a _c_d, _p_u_s_h_d,
- or _p_o_p_d, command, an infinite loop may result. In this
- case, it is the author's opinion that said user will get
- what he deserves.
-
- 22226666.... NNNNAAAATTTTIIIIVVVVEEEE LLLLAAAANNNNGGGGUUUUAAAAGGGGEEEE SSSSYYYYSSSSTTTTEEEEMMMM
- _T_c_s_h is eight bit clean (if so compiled, see the description
- of the _v_e_r_s_i_o_n shell variable below), and will thus support
- character sets needing this capability. The _t_c_s_h support
- for NLS differs depending on whether it was compiled to use
- the system's NLS (again, see the _v_e_r_s_i_o_n variable) or not.
- In either case, the default for character classification
- (i.e. which characters are printable etc) and sorting is 7-
- bit ascii, and any setting or unsetting of the LANG or
- LC_CTYPE environment variables will cause a check for
- possible changes in these respects.
-
- When using the system's NLS, the _s_e_t_l_o_c_a_l_e C library
- function will be called to determine appropriate character
- classification and sorting - this function will typically
- examine the LANG and LC_CTYPE variables for this purpose
- (refer to the system documentation for further details).
- Otherwise, NLS will be simulated, by assuming that the ISO
- 8859-1 character set is used whenever either of the LANG and
- LC_CTYPE variables are set, regardless of their values.
- Sorting is not affected for the simulated NLS.
-
- In addition, with both real and simulated NLS, all printable
- characters in the range \200-\377, i.e. those that have M-
- <char> bindings, are automatically rebound to _s_e_l_f-_i_n_s_e_r_t-
- _c_o_m_m_a_n_d (the corresponding binding for the escape+<char>
- sequence, if any, is left alone). This automatic rebinding
- is inhibited if the NOREBIND environment variable is set -
- this may be useful for the simulated NLS, or a primitive
- real NLS which assumes full ISO 8859-1 (otherwise all M-
- <char> bindings in the range \240-\377 will effectively be
- undone in these cases). Explicitly rebinding the relevant
- keys, using _b_i_n_d_k_e_y, is of course still possible.
-
- Unknown characters (i.e. those that are neither printable
- nor control characters) will be printed using the \nnn
- format. If the tty is not in 8 bit mode, other 8 bit
- characters will be printed by converting them to ascii and
- using standout mode. _T_c_s_h will never change the 7/8 bit
-
-
-
- Page 33 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- mode of the tty, and will track user-initiated settings for
- this - i.e. it may be necessary for NLS users (or, for that
- matter, those that want to use a Meta key) to explicitly set
- the tty in 8 bit mode through the appropriate _s_t_t_y(1)
- command in e.g. the .login file.
-
- 22227777.... AAAAUUUUTTTTOOOOMMMMAAAATTTTIIIICCCC PPPPRRRROOOOCCCCEEEESSSSSSSS TTTTIIIIMMMMEEEE RRRREEEEPPPPOOOORRRRTTTTIIIINNNNGGGG
- Automatic process time reporting is a feature that exists in
- _c_s_h, but it is usually not documented. In addition _t_c_s_h
- provides a slightly enriched syntax. Process time reports
- are controlled via the _t_i_m_e shell variable. The first word
- of the _t_i_m_e variable indicates the minimum number of CPU
- seconds the process has to consume before a time report is
- produced. The optional second word controls the format of
- the report. The following sequences are available for the
- format specification:
-
- %U The time the process spent in user mode
- in cpu seconds.
- %S The time the process spent in kernel mode
- in cpu seconds.
- %E The elapsed time in seconds.
- %P The CPU percentage computed as (%U + %S) / %E.
-
- The following sequences are supported only in systems that
- have the BSD resource limit functions.
-
- %W Number of times the process was swapped.
- %X The average amount in (shared) text space used
- in Kbytes.
- %D The average amount in (unshared) data/stack
- space used in Kbytes.
- %K The total space used (%X + %D) in Kbytes.
- %M The maximum memory the process had in use at
- any time in Kbytes.
- %F The number of major page faults (page needed to
- be brought from disk).
- %R The number of minor page faults.
- %I The number of input operations.
- %O The number of output operations.
- %r The number of socket messages received.
- %s The number of socket messages sent.
- %k The number of signals received.
- %w Number of voluntary context switches (waits).
- %c Number of involuntary context switches.
-
- The default time format is "%Uu %Ss %E %P %X+%Dk %I+%Oio
- %Fpf+%Ww" for systems that support resource usage reporting
- and "%Uu %Ss %E %P" for systems that do not.
-
- For Sequent's DYNIX/ptx %X, %D, %K, %r and %s are not
- supported. However, the following additional sequences are
-
-
-
- Page 34 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- available.
-
- %Y The number of system calls performed.
- %Z The number of pages which are zero-filled
- on demand.
- %i The number of times a process' resident
- set size was increased by the kernel.
- %d The number of times a process' resident
- set size was decreased by the kernel.
- %l The number of read system calls performed.
- %m The number of write system calls performed.
- %p the number of reads from raw disk devices.
- %q the number of writes to raw disk devices.
-
- The default time format for Sequent's DYNIX/ptx is "%Uu %Ss
- $E %P %I+%Oio %Fpf+%Ww". Also note that the CPU percentage
- can be higher than 100% on multi-processors.
-
- 22228888.... OOOOSSSS////DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNTTTT BBBBUUUUIIIILLLLTTTTIIIINNNN SSSSUUUUPPPPPPPPOOOORRRRTTTT
- _T_R_A_N_S_P_A_R_E_N_T _C_O_M_P_U_T_I_N_G _F_A_C_I_L_I_T_Y
-
- On systems that support TCF (aix-ibm370, aix-ps2) the
- following builtins have been added:
-
- ggggeeeettttssssppppaaaatttthhhh Print the current system execution path.
-
- sssseeeettttssssppppaaaatttthhhh LLLLOOOOCCCCAAAALLLL||||<<<<ssssiiiitttteeee>>>>||||<<<<ccccppppuuuu>>>> ............
- Set the current execution path.
-
-
- ggggeeeettttxxxxvvvveeeerrrrssss Print the current experimental version prefix.
-
-
- sssseeeettttxxxxvvvveeeerrrrssss [[[[<<<<ssssttttrrrriiiinnnngggg>>>>]]]]
- If the optional string is ommited, any
- experimental version prefix is removed. Otherwise
- the experimental version prefix is set to string.
-
-
- mmmmiiiiggggrrrraaaatttteeee [[[[----<<<<ssssiiiitttteeee>>>>]]]] <<<<ppppiiiidddd>>>>||||%%%%<<<<jjjjoooobbbbiiiidddd>>>> ............
- mmmmiiiiggggrrrraaaatttteeee ----<<<<ssssiiiitttteeee>>>>
- The first form migrates the process or job to the
- site specified or the default site determined by
- the system path. The second form, is equivalent
- to 'migrate -<site> $$', i.e. migrates the current
- process to the site specified. Note: migrating
- _t_c_s_h itself can cause unexpected behavior, since
- the shell does not like to lose its tty.
-
-
- In addition, jobs will print the site the job is executing.
-
-
-
-
- Page 35 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- _D_o_m_a_i_n/_O_S _S_u_p_p_o_r_t
-
- iiiinnnnlllliiiibbbb <<<<sssshhhhaaaarrrreeeedddd----lllliiiibbbbrrrraaaarrrryyyy>>>> ............
- Inlib adds shared libraries to the current environment.
- There is no way to remove them...
-
- rrrroooooooottttnnnnooooddddeeee ////////<<<<nnnnooooddddeeeennnnaaaammmmeeee>>>>
- Change the name of the current rootnode. From now on, /
- will resolve to //<_r_o_o_t_n_o_d_e>
-
- vvvveeeerrrr [[[[<<<<ssssyyyyssssttttyyyyppppeeee>>>>]]]] [[[[<<<<ccccoooommmmmmmmaaaannnndddd>>>>]]]]
- Without arguments, print $_S_Y_S_T_Y_P_E; with the <_s_y_s_t_y_p_e>
- provided, set _S_Y_S_T_Y_P_E to the one provided. Valid
- systypes are bsd4.3 and sys5.3. If a <_c_o_m_m_a_n_d> is
- argument is given, then <_c_o_m_m_a_n_d> is executed under the
- <_s_y_s_t_y_p_e> specified.
-
- _M_a_c_h
-
- sssseeeettttppppaaaatttthhhh <<<<ppppaaaatttthhhh----ssssppppeeeecccc>>>> ............
- XXX: What does it do?
-
- _M_a_s_s_c_o_m_p/_R_T_U
-
- uuuunnnniiiivvvveeeerrrrsssseeee <<<<uuuunnnniiiivvvveeeerrrrsssseeee----ssssppppeeeecccc>>>> ............
- Sets the current universe to the specified parameter.
-
- _C_o_n_v_e_x/_O_S
-
- wwwwaaaarrrrpppp [[[[<<<<uuuunnnniiiivvvveeeerrrrsssseeee----ssssppppeeeecccc>>>>]]]] ............
- Without arguments prints the current value of the
- universe. With a universe argument it sets the current
- universe to the value of the argument.
-
-
- 22229999.... WWWWIIIINNNNDDDDOOOOWWWW SSSSIIIIZZZZEEEE TTTTRRRRAAAACCCCKKKKIIIINNNNGGGG
- On systems that support SIGWINCH or SIGWINDOW, _t_c_s_h adapts
- to window resizing automatically and adjusts the environment
- variables LINES and COLUMNS if set. Also if the environment
- variable TERMCAP contains li#, and co# fields, these will be
- adjusted also to reflect the new window size.
-
-
- 33330000.... IIIINNNNPPPPUUUUTTTT FFFFIIIILLLLEEEESSSS
- On startup _t_c_s_h will try to source /_e_t_c/_c_s_h._c_s_h_r_c and then
- /_e_t_c/_c_s_h._l_o_g_i_n if the shell is a login shell. Then it will
- try to source $_H_O_M_E/._t_c_s_h_r_c and then $_H_O_M_E/._c_s_h_r_c if
- $_H_O_M_E/._t_c_s_h_r_c is not found. Then it will source $_H_O_M_E/._l_o_g_i_n
- if the shell is a login shell. On exit _t_c_s_h will source
- first /_e_t_c/_c_s_h._l_o_g_o_u_t and then $_H_O_M_E/._l_o_g_o_u_t if the shell
- was a login shell.
-
-
-
-
- Page 36 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- Note: On _c_o_n_v_e_x_o_s, _s_t_e_l_l_i_x and _I_N_T_E_L the names of the system
- default files are /_e_t_c/_c_s_h_r_c , /_e_t_c/_l_o_g_i_n and /_e_t_c/_l_o_g_o_u_t
- respectively. On the NeXT the names are also different:
- /_e_t_c/_c_s_h_r_c._s_t_d , /_e_t_c/_l_o_g_i_n._s_t_d and /_e_t_c/_l_o_g_o_u_t._s_t_d Finally
- on _i_r_i_x, _A/_U_X, _A_M_I_X, and the _c_r_a_y only the file /_e_t_c/_c_s_h_r_c
- is executed if the shell is a login shell.
-
-
- 33331111.... CCCCOOOOMMMMMMMMAAAANNNNDDDD LLLLIIIINNNNEEEE OOOOPPPPTTTTIIIIOOOONNNNSSSS
- This section describes options that are either undocumented
- in _c_s_h (*) or present only in _t_c_s_h. (+)
-
-
- -_d Force load of directory stack. (+)
-
- -_D_n_a_m_e[=_v_a_l_u_e]
- Set environment variable name to value. (Domain/OS only)
- (+)
-
- -_F Use fork() instead of vfork() to spawn processes.
- (Convex/OS only) (+)
-
- -_l Make _t_c_s_h behave like a login shell. (+)
-
- -_m Allow reading of a .cshrc that does not belong to the
- effective user. Newer versions of _s_u(_1) can pass that to
- the shell. (some versions of csh have it) (+*)
-
- -_q Make the shell accept SIGQUIT, and behave when it is
- used under a debugger. Job control is disabled. (*)
-
-
- 33332222.... HHHHIIIISSSSTTTTOOOORRRRYYYY AAAANNNNDDDD VVVVAAAARRRRIIIIAAAABBBBLLLLEEEE MMMMOOOODDDDIIIIFFFFIIIIEEEERRRR EEEENNNNHHHHAAAANNNNCCCCEEEEMMMMEEEENNNNTTTTSSSS
- _T_c_s_h accepts more than one variable modifier per variable or
- history expansion. For example, in _c_s_h(_1) the following
- command expands to:
-
- % set a=/usr/local/foo.bar.baz
- % echo $a:t:r:e
- foo.bar.baz:r:e
-
- but in _t_c_s_h:
-
- > set a=/usr/local/foo.bar.baz
- > echo $a:t:r:e
- bar
-
- This bug fix changes slightly the input syntax of _c_s_h,
- causing expressions of the form to have invalid syntax:
-
- > set a=/usr/local/foo.bar.baz
- > echo $a:t:$cwd
-
-
-
- Page 37 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- Unknown variable modifier.
-
- Which is the correct behavior, since after the second colon
- a variable modifier is expected and `$' is found.
- Expressions like this should be re-written as:
-
- > echo ${a:t}:$cwd
-
- _T_c_s_h can also use the _l and _u modifiers to change the case
- of a word.
-
- Also _t_c_s_h has an additional : character _a which applies the
- current modifier multiple times in the same word, in the
- same way _g applies the modifier once in each word:
-
- > set foo=(a:b:c d:e:f)
- > echo $foo:s/:/ /
- a b:c d:e:f
- > echo $foo:gs/:/ /
- a b:c d e:f
- > echo $foo:as/:/ /
- a b c d:e:f
- > echo $foo:ags/:/ /
- a b c d e f
-
- The _c_s_h expert will notice in the above example another _t_c_s_h
- enhancement. In _c_s_h the _s modifier does not work for
- variables.
-
- The _a character works correctly with other modifiers, for
- example:
-
- > echo $host
- tesla.ee.cornell.edu
- > echo $host:r
- tesla.ee.cornell
- > echo $host:ar
- tesla
-
- _N_o_t_e: The _a character causes a modifier to be applied to a
- word repeatedly until the modifier fails. This can lead to
- an infinite loop in the current implementation when used
- with the _s modifier. For example :as/f/ff/ will never
- terminate. This behavior might change in the future.
-
-
- 33333333.... PPPPRRRROOOOGGGGRRRRAAAAMMMMMMMMAAAABBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEETTTTIIIIOOOONNNN
- The new _c_o_m_p_l_e_t_e and _u_n_c_o_m_p_l_e_t_e builtins can change the
- behavior of the listing and file-completion in tcsh. For
- example some commands like _c_d, _p_u_s_h_d, _p_o_p_d , _m_k_d_i_r(_1),
- _r_m_d_i_r(_1) accept only directories as arguments. Normally
- _t_c_s_h when asked to list or complete an argument for those
-
-
-
- Page 38 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- commands takes into account all the files and not only
- directories. This behavior can be changed by telling _t_c_s_h
- that these commands only expect directory arguments:
-
- > complete cd 'n/*/d/'
-
- The above command tells _t_c_s_h to complete any following word
- with a directory.
-
- The syntax for the _c_o_m_p_l_e_t_e and _u_n_c_o_m_p_l_e_t_e builtins is:
-
- _c_o_m_p_l_e_t_e [<_c_o_m_m_a_n_d-_p_a_t_t_e_r_n> [<_c_o_m_p_l_e_t_i_o_n-_a_r_g_u_m_e_n_t>]]
- _u_n_c_o_m_p_l_e_t_e <_c_o_m_m_a_n_d-_p_a_t_t_e_r_n>
-
- Completion arguments are matched in turn from left to right
- and the first successful match is returned. There are three
- different completion arguments, modeled after the _s_e_d(_1)
- substitute command and they are of the form:
-
- <<<<ccccoooommmmmmmmaaaannnndddd>>>>////<<<<mmmmaaaattttcccchhhh----ppppaaaatttttttteeeerrrrnnnn>>>>////<<<<ccccoooommmmpppplllleeeetttteeee----aaaaccccttttiiiioooonnnn>>>>////[[[[<<<<ssssuuuuffffffffiiiixxxx>>>>||||////]]]]
-
- The five commands available are:
-
- pppp This specifies position-dependent completion. The
- matching pattern is a numeric range similar to the one
- used to index shell variables. If the current word is
- within that range, then the completion action is taken.
- For example:
-
- > complete cd 'p/1/d/'
-
- completes only the first argument of 'cd' with a
- directory. A special useful case of position-dependent
- completion can be used to disambiguate command
- completion:
-
- > set autolist
- > co[TAB]
- complete compress
- > complete -co* 'p/0/(complete)/'
- > co[TAB]
- > complete _
-
- The above command tells the completion mechanism to
- match any word on position 0, that matches the pattern
- _c_o* . If a match is found, the word is replaced with
- the literal pattern "complete". The leading '-' in the
- pattern signifies that this completion is to be used
- only with ambiguous commands.
-
- nnnn,,,,NNNN This command specifies next-word completions. The
- matching pattern in this case is a shell pattern that
-
-
-
- Page 39 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- must match the previous word on the command line (_n),
- or the word before that (_N). For example:
-
- > complete find 'n/-user/u/'
-
- Here the argument of the find command which follows the
- -user argument is completed from the list of users.
-
- cccc,,,,CCCC The last two completion commands complete the current
- word. The matching pattern in this case must match the
- prefix of the current word. For example:
-
- > complete cc 'c/-I/d/'
-
- completes the the word containing -I from the list of
- directories. While ````cccc'''' discards the matched prefix,
- ````CCCC'''' keeps it and applies the completion using it.
-
-
- So far the _d, _u, (_w_o_r_d) completion actions have been
- mentioned. The complete list of completion actions are:
-
- C Complete completions
- S Complete signals
- a Complete aliases
- b Complete binding
- c Complete command
- d Complete directory
- e Complete environment variable
- f Complete file or path component
- j Complete jobs
- l Complete limits
- n Complete nothing
- p Complete files using the supplied pathname prefix
- s Complete shell variable
- t Complete non directory `text' filename
- v Complete any variable
- u Complete username
- x Explain what argument when listing is requested.
- $var Complete using words from variable
- (...) Complete using words from list
- `...` Complete evaluating word list from the output of command.
-
- All the above completion actions, except _x, $_v_a_r, (...), and
- `...` can have an additional shell pattern which must match
- the files to be completed, separated from the action with a
- ':'. The '_x' completion action instead expects the
- explanation string specified this way. For example, in the
- C compiler, it makes sense to complete only files that the
- compiler understands:
-
- > complete cc 'n/*/f:*.[cao]/'
-
-
-
- Page 40 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- It is also useful to exclude files from the completion list.
- Normally _t_c_s_h will expand the following command:
-
- > set fignore=(.o)
- > ls
- foo.c foo.o
- > vi f[TAB]
- > vi foo.c
- > rm f[TAB]
- > rm foo.c
-
- A better way to do this is to use the _c_o_m_p_l_e_t_e builtin to
- protect precious files:
-
- > complete rm 'n/*/f:^*.{c,h,cc,C,tex,1,man,l,y}/'
- > ls
- foo.c foo.o
- > vi f[TAB]
- > vi foo.c
- > rm f[TAB]
- > rm foo.o
-
- Note that _f_i_g_n_o_r_e is not used when a shell pattern is
- specified in a completion action.
-
- Other commands don't expect files as arguments, so the
- completion builtin can be used to change the list of items
- to be completed:
-
- > complete man 'n/*/c/' # complete commands
- > complete which 'n/*/c/'
- > complete dbx 'p/2/(core)/' 'n/*/c/'
- > complete alias 'p/1/a/' # complete aliases
- > complete set 'p/1/s/' # complete variables
- > complete finger 'p/1/u/' # complete user-names
-
- Note that in the _d_b_x example, the positional completion is
- specified before the next word completion. Since completions
- are evaluated from left to right, if the next word
- completion was specified first it would always match and the
- positional completion would never be executed. This is a
- common mistake when defining a completion.
-
- In some cases the list needs to be customized or dynamically
- generated.
-
- > set hostnames=(prep.ai.mit.edu tesla.ee.cornell.edu)
- > complete rlogin 'p/1/$hostnames/'
-
- Consider a complex example using matching patterns to direct
- argument dependent completions:
- > complete find 'n/-fstype/(nfs 4.2)/' 'n/-name/f/' \
-
-
-
- Page 41 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- 'n/-type/(c b d f p l s)/' 'n/-user/u/' 'n/-exec/c/' \
- 'n/-ok/c/' 'n/-cpio/f/' 'n/-ncpio/f/' 'n/-newer/f/' \
- 'c/-/(fstype name perm prune type user nouser \
- group nogroup size inum atime mtime ctime exec \
- ok print ls cpio ncpio newer xdev depth)/' \
- 'n/*/d/'
-
-
- The words following the -_f_s_t_y_p_e and -_t_y_p_e arguments is to be
- completed from the lists specified. The word following the
- -_n_a_m_e, -_c_p_i_o, -_n_c_p_i_o, and -_n_e_w_e_r arguments are to be
- completed using files or directory components. The word
- following the -_u_s_e_r argument will be completed from the list
- of user names of the system, and the word following the -
- _e_x_e_c and -_o_k arguments will be completed from the list of
- commands. The fourth line specifies how the current word
- will be completed if it starts with a -. Note that the
- pattern of this completion argument refers to the _c_u_r_r_e_n_t
- word and not to the _p_r_e_v_i_o_u_s word, like before. Finally the
- last line in the find completion matches all the remaining
- cases and requires a directory component.
-
- > cd /usr
- > set autolist
- > find [TAB]
- bin/ include/ lib/ local/ man/ src/
- > find -[TAB]
- atime depth group mtime newer ok prune user
- cpio exec inum name nogroup perm size xdev
- ctime fstype ls ncpio nouser print type
- > find -u[TAB]
- > find -user [TAB]
- christos root
- > find -user c[TAB]
- > find -user christos
-
- Another useful feature is to override the default suffix
- rules. For example:
-
- > complete rcp 'c/*:/f/' 'p/1/$hosts/:'
- > complete finger 'c/*@/$hosts/' 'p/1/u/@'
-
- completes from $hosts appending a `:' and then begins
- expanding files, where finger expands user-names appending
- an `@' and then begins expanding hosts.
-
- Another exotic example that makes use of dynamic command
- execution is:
-
- > complete talk p/1/'`users | tr " " "\012" | uniq`'/ \
- n/\*/\`who\ \|\ grep\ \$:1\ \|\ awk\ \'\{\ print\ \$2\ \}\'\`/
-
-
-
-
- Page 42 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- Here we want to get a list of the active users, as an
- argument to talk, then we want to pick the user, and find
- his tty... Note that there is no quoting performed inside
- the completion patterns. If the character '/' is used in
- the matched pattern, then another punctuation character can
- be used as a separator. The only pattern recognized is
- $$$$::::<<<<nnnnuuuummmmbbbbeeeerrrr>>>> which is substituted by the n'th word of the
- current line.
-
- Notes:
-
- 1. The completion command-patterns are overridden when the
- internal parsing mechanism determines that the
- completion is a login name, or a variable.
-
- 2. This is an experimental feature and the syntax/behavior
- may change in future versions.
-
-
- FFFFYYYYIIII
- This shell uses CBREAK mode but takes typed-ahead characters
- anyway. You can still use _s_t_t_y(1) to set some of the modes
- of your terminal (but not bindings).
-
- This shell will restore your tty to a sane mode if it
- appears to return from some command in raw, CBREAK, or
- noecho mode. This behavior can be changed using _s_e_t_t_y.
-
- EEEENNNNHHHHAAAANNNNCCCCEEEEDDDD FFFFIIIILLLLEEEE IIIINNNNQQQQUUUUIIIIRRRRIIIIEEEESSSS
- _C_s_h allows the following file inquiries that can appear as
- primitive operands in expressions. They are for the form -_l
- <_f_i_l_e_n_a_m_e>.
-
- r read access
- w write access
- x execute access
- e existence
- o ownership
- z zero size
- f plain file
- d directory
- l symbolic link *
-
-
- _T_c_s_h defines also the following:
-
- c character special file
- b block special file
- p named pipe (fifo) *
- u set-user-ID bit is set
- g set-group-ID bit is set
- k sticky bit is set
-
-
-
- Page 43 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- s the file is non-zero size.
- t open file descriptor for terminal device [a number]
- S socket special file *
- X executable in the path or shell builtin
-
-
- Notes: On systems without the file types indicated by * the
- file inquiry operands return false.
-
- If tcsh is compiled for POSIX [i.e. POSIX is defined in
- config.h], then the result of test is based on the
- permission bits of the file and not on the result of the
- _a_c_c_e_s_s(_2) system call. I.e. if you mount a file system
- read-only, and test -w a file, then the test will succeed in
- POSIX mode, if the permissions of the file allow writing.
-
-
- RRRREEEEAAAADDDDOOOONNNNLLLLYYYY VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
- _T_c_s_h allows defining variables as readonly. Such variables
- cannot be cleared or modified. E.g.
-
- > set -r x=(1 2 3)
- > unset x
- unset: $x is read-only.
- > set x=5
- set: $x is read-only.
- > set -r x=5
- set: $x is read-only.
- > echo $x
- 1 2 3
-
- In addition 'set -r' will list only the readonly variables.
-
- EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
- HPATH -- path to look for command documentation
- LANG -- used to give preferred character environment (see
- NLS)
- LC_CTYPE -- used to change only ctype character handling
- (see NLS)
- NOREBIND -- inhibits rebinding of printable characters to
- self-insert-command
- PATH -- path to look for command execution
- SHLVL -- current shell level nesting
- TERM -- used to tell how to handle the terminal
- LINES -- Number of lines in terminal (see WINDOW SIZE)
- COLUMNS -- Number of columns in terminal (see WINDOW SIZE)
- TERMCAP -- Terminal capability string (see WINDOW SIZE)
- SYSTYPE -- The current system type (Domain OS only)
-
- NNNNEEEEWWWW SSSSHHHHEEEELLLLLLLL VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
- aaaaddddddddssssuuuuffffffffiiiixxxx add a / for directories, and a space for normal
- files when complete matches a name exactly. If
-
-
-
- Page 44 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- unset don't add anything extra.
-
- aaaammmmppppmmmm show all times in 12 hour, AM/PM format.
-
- aaaauuuuttttooooccccoooorrrrrrrreeeecccctttt
- Correct mis-spelled path components automatically
- before attempting completion.
-
- aaaauuuuttttooooeeeexxxxppppaaaannnndddd
- invoke the expand-history function automatically
- on completion.
-
- aaaauuuuttttoooolllliiiisssstttt list possibilities on an ambiguous completion.
-
- aaaauuuuttttoooollllooooggggoooouuuutttt
- The first word indicates number of minutes of
- inactivity before automatic logout. The optional
- second word indicates the number of minutes of
- inactivity after which the user will be prompted
- for his login password to enter a command.
-
- bbbbaaaacccckkkkssssllllaaaasssshhhh____qqqquuuuooootttteeee
- makes the backslash quote \, ', and ". This option
- changes the parsing mechanism for tcsh, and it can
- cause syntax errors in _c_s_h scripts.
-
- ccccoooorrrrrrrreeeecccctttt automatically try to correct the spelling of
- commands. Must be set to either correct=cmd, only
- command name will be corrected, or correct=all,
- the whole line will be corrected.
-
- ddddeeeexxxxttttrrrraaaacccctttt extract a directory on pushd rather than rotating.
-
- ddddiiiirrrrssssffffiiiilllleeee If set, it contains the full path-name where a
- directory stack file is read/written. It defaults
- to $home/.cshdirs. This file is executed last
- after .cshrc and .login to restore the directory
- stack.
-
- ddddiiiirrrrssssttttaaaacccckkkk If set, it contains an array of all the
- directories on the directory stack. $dirstack[1]
- is the current working directory, $dirstack[2] the
- first directory on the stack etc. Setting
- $dirstack resets all the stack entries, but the
- current working directory which is preserved.
-
- dddduuuunnnniiiiqqqquuuueeee Push only directories that are not already in the
- directory stack.
-
- eeeecccchhhhoooo____ssssttttyyyylllleeee
- Set the style of the builtin echo. Valid values
- are:
-
-
-
- Page 45 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- _b_s_d : if the first argument is -n, don't echo a
- newline.
-
- _s_y_s_v : recognize \ escape sequences in echo strings.
-
- _b_o_t_h : recognize both -n and \ escape sequences.
-
- _n_o_n_e : the purist's echo.
-
- eeeeddddiiiitttt use the input editor, set by default.
-
- ffffiiiiggggnnnnoooorrrreeee list of file name suffixes (e.g. .o, ~) to ignore
- during complete.
-
- ggggiiiidddd the current real group id.
-
- hhhhiiiissssttttlllliiiitttt If set, history lines in the editor will be shown
- with its literal value (that is the line as it was
- input) instead of the shells lexical version. The
- current history line can be toggled between
- literal and lexical with the toggle-literal-
- history function. History lines saved at shell
- exit are also saved as this variable indicates.
-
- hhhhiiiissssttttffffiiiilllleeee If set, it contains the full path-name where a
- history file is read/written. It defaults to
- $home/.history. This is useful when sharing the
- same home directory in different machines, or if
- one wants to save all the histories in the tty
- sessions. It is usually set in .cshrc for
- interactive shells, because history is sourced
- between .cshrc and .login so that it is available
- from .login.
-
- hhhhiiiissssttttoooorrrryyyy The first word of the history variable indicates
- the number of history events to be saved. The
- optional second word indicates the format history
- is printed (Defaults to "%h\t%T\t%R\n").
-
- iiiinnnnppppuuuuttttmmmmooooddddeeee Can be set to either _i_n_s_e_r_t or _o_v_e_r_w_r_i_t_e to
- control the line editing behavior, as described in
- section 1.
-
- lllliiiissssttttjjjjoooobbbbssss list all jobs when suspending. set listjobs=long,
- produces long format.
-
- lllliiiissssttttlllliiiinnnnkkkkssss Resolve symbolic links when listing files so that
- the correct filetype is shown.
-
- lllliiiissssttttmmmmaaaaxxxx maximum number of items to list without asking
- first.
-
-
-
-
- Page 46 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- lllliiiissssttttmmmmaaaaxxxxrrrroooowwwwssss
- maximum number of rows of items to list without
- asking first. (local AFEB hack at University of
- Twente)
-
- mmmmaaaattttcccchhhhbbbbeeeeeeeepppp control beeping on completion. With
- matchbeep=nomatch, completion only beeps when
- there is no match, with matchbeep=ambiguous, beeps
- also when there are multiple matches, with
- matchbeep=notunique, beeps when there is one exact
- and other longer matches, with matchbeep=never, it
- never beeps.
-
- nnnnoooobbbbeeeeeeeepppp Disables beeping completely.
-
- nnnnooookkkkaaaannnnjjjjiiii If kanji support is enable, setting this variable
- disables it, so that the meta key can be used.
-
- nnnnoooossssttttaaaatttt An list of directories that should not be stat'ed
- during a completion operation. Some directories
- e.g. "/afs", can take too much time to complete a
- _s_t_a_t(_2) operation, making them prime candidates
- for membership in this list.
-
- ooooiiiidddd The organization id number (Domain OS only).
-
- pppprrrriiiinnnntttteeeexxxxiiiittttvvvvaaaalllluuuueeee
- if an interactive program exits non-zero, print
- the exit value.
-
- pppprrrroooommmmpppptttt the string to prompt with.
-
- pppprrrroooommmmpppptttt2222 the string to prompt for while and for loops with.
-
- pppprrrroooommmmpppptttt3333 the string to prompt with when automatic spelling
- correction has corrected a command line.
-
- ppppuuuusssshhhhddddttttoooohhhhoooommmmeeee
- make pushd with no args do a "pushd ~" (like cd
- does).
-
- ppppuuuusssshhhhddddssssiiiilllleeeennnntttt
- do not print the dir stack on every pushd and
- popd.
-
- rrrreeeecccceeeexxxxaaaacccctttt recognize exact matches even if they are
- ambiguous.
-
- rrrreeeeccccooooggggnnnniiiizzzzeeee____oooonnnnllllyyyy____eeeexxxxeeeeccccuuuuttttaaaabbbblllleeeessss
- list choices of commands only displays files in
- the path that are executable (slow).
-
-
-
-
- Page 47 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- rrrrmmmmssssttttaaaarrrr Prompt the user before execution of `rm *'.
-
- ssssaaaavvvveeeeddddiiiirrrrssss Before exiting, create a file called
- $HOME/.cshdirs that contains the necessary
- commands to restore the current directory stack.
- _T_c_s_h will read this file during startup and
- restore the directory stack.
-
- ssssaaaavvvveeeehhhhiiiisssstttt number of history items to save between login
- sessions. If it is just set, the number of items
- is taken from $history.
-
- sssshhhhllllvvvvllll Integer value indicating the number of nested
- shells. On login shells the level is reset to 1.
-
- sssshhhhoooowwwwddddoooottttssss show hidden files in list and complete operations.
- If it is set to -A, then "." and ".." are not
- displayed, similarly to the BSD ls -A.
-
- ssssyyyymmmmlllliiiinnnnkkkkssss can be set to: _c_h_a_s_e , in order to resolve the
- full path names, _i_g_n_o_r_e , in order to use $cwd to
- resolve relative directory references for
- builtins. _e_x_p_a_n_d , in order to use $cwd and
- rewrite the arguments for commands.
-
- ttttccccsssshhhh Contains the current version of the shell as
- R.VV.PP. The _R indicates the major release number,
- the _V_V the current version and the _P_P the
- patchlevel.
-
- tttteeeerrrrmmmm the terminal type; see above.
-
- ttttppppeeeerrrriiiioooodddd periodic command wait period (in minutes).
-
- ttttttttyyyy The name of the tty, or empty if not attached to
- one.
-
- uuuuiiiidddd the current real user ID.
-
- vvvveeeerrrrssssiiiioooonnnn the version ID stamp for this _t_c_s_h. It contains,
- the origin of this version of _t_c_s_h, the date this
- version was released and a string containing a
- comma separated list of the compile time options
- enabled:
- 8b 7b If tcsh was compiled to be eight bit clean
- or not. The default is 8b.
- nls Set if tcsh uses the system's NLS, should be
- the default for systems that have NLS.
- lf Set if tcsh should execute .login before
- .cshrc on login shells. Default is not set.
- dl Set if tcsh should put . last on the path
- for security. Default is set.
-
-
-
- Page 48 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- vi Set if tcsh's default editor is vi. Default
- is unset (emacs)
- dtr Set if tcsh should drop dtr on login shells
- when exiting. Default is unset.
- bye Set if tcsh should accept bye in addition
- to logout, and rename log to watchlog.
- Default is unset.
- al Set if tcsh should determine if autologout
- should be enabled. The default is set.
- kan Set if tcsh is compiled for Kanji.
- (ignore the iso character set.) Default is unset.
- sm Set if tcsh was compiled to use the system's malloc.
- hb Set if tcsh is emulating #!<program> <args> in
- shell script execution
-
- In addition to the above strings, administrators can enter
- local strings to indicate differences in the local version.
-
-
- vvvviiiissssiiiibbbblllleeeebbbbeeeellllllll
- use the visible bell (screen flash) rather than
- audible bell.
-
- wwwwaaaattttcccchhhh list of events to watch.
-
- wwwwhhhhoooo format string for the printouts generated when
- _w_a_t_c_h is set.
-
- wwwwoooorrrrddddcccchhhhaaaarrrrssss list of non-alphanumeric characters considered
- part of a word for the purpose of the forward-
- word, backward-word etc functions -- defaults to
- "*?_-.[]~=".
-
- NNNNEEEEWWWW SSSSPPPPEEEECCCCIIIIAAAALLLL AAAALLLLIIIIAAAASSSSEEEESSSS
- _c_w_d_c_m_d the command is run after every change of working
- directory.
-
- _p_e_r_i_o_d_i_c the command to be run every _t_p_e_r_i_o_d minutes.
-
- _p_r_e_c_m_d the command to be run prior to printing each
- prompt.
-
- _b_e_e_p_c_m_d the command to be run every time _t_c_s_h wants to
- echo the terminal bell.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- xterm(1), twm(1), csh(1), chsh(1), termcap(5), termio(7)
-
- BBBBUUUUGGGGSSSS
- The screen update for lines longer than the screen width is
- very poor if the terminal cannot move the cursor up (i.e.
- terminal type "dumb").
-
-
-
- Page 49 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- I am certain that there are bugs. Bugs (preferably with
- fixes) should be sent to Christos Zoulas
- (christos@ee.cornell.edu).
-
- VVVVEEEERRRRSSSSIIIIOOOONNNN
- This man page documents tcsh 6.04.00 (Cornell) 93/07/03.
-
- AAAAUUUUTTTTHHHHOOOORRRRSSSS
- Ken Greer, HP Labs, 1981
- Wrote the command completion.
-
- Mike Ellis, Fairchild, 1983
- Added command name recognition/completion.
-
- Paul Placeway, Ohio State CIS dept., 1983
- Added the command line editor.
-
- Rayan Zachariassen, University of Toronto, 1984
- Added the builtin _w_h_i_c_h feature to the editor, and the code
- for _l_s-_F . Also numerous bug fixes, modifications, and
- performance enhancements.
-
- Chris Kingsley, Caltech
- Wrote the fast storage allocator routines (nmalloc.c).
-
- Karl Kleinpaste, CCI 1983-4
- Added special aliases, directory stack extraction stuff,
- login/logout watch, and scheduled events. Also came up with
- the idea of the new prompt format.
-
- Paul Placeway, Ohio State CIS dept., 1987
- Re-wrote the editor, cleaned up other code, and added the
- prompt routines, added to the syntax for file name
- expressions, and sped up the shell some.
-
- Chris Grevstad, TRW, 1987
- Ported the 4.3 csh sources to tcsh.
-
- Christos S. Zoulas, Cornell U. EE dept., 1987-92
- ported tcsh to HPUX, and System V rel. 2 and 3 and wrote a
- SysV version of getwd.c. Added SHORT_STRINGS support. New
- version of sh.glob.c.
-
- James J Dempsey, BBN, 1988, and Paul Placeway, OSU, 1988
- Re-ported tcsh to A/UX.
-
-
- BBBBUUUUGGGGFFFFIIIIXXXXEEEESSSS AAAANNNNDDDD EEEENNNNHHHHAAAANNNNCCCCEEEEMMMMEEEENNNNTTTTSSSS
- Tim P. Starrin, National Aeronautics and Space
- Administration, Langley Research Center Operations, 1993
- Readonly variable additions.
-
-
-
-
- Page 50 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- Jeff Fink, 1992
- Added complete-word-fwd, and complete-word-back editor
- functions
-
- Harry C. Pulley, 1992
- Coherent port
-
- Andy Phillips, Mullard Space Science Lab U.K., 1992
- VMS-POSIX port.
-
- Beto Appleton, IBM Corp., 1992
- Walking process group fixes, lots of misc csh bug fixes,
- POSIX file tests, POSIX SIGHUP.
-
- Scott Bolte, Cray Computer Corp., 1992
- CSOS port.
-
- Kaveh R. Ghazi, Rutgers University, 1992
- Fixes and Ports for Tek, m88k, Titan, Masscomp.
-
- Mark Linderman, Cornell University, 1992
- OS/2 Port, (he does not run OS/2 anymore so he cannot help
- you porting tcsh on it)
-
- Mika Liljeberg, liljeber@kruuna.Helsinki.FI, 1992
- Linux port.
-
- Scott Krotz, Motorola, 1991
- Minix port.
-
- David Dawes, Sydney U. Australia, Physics dept., 1991
- SVR4 job control fixes. (reverse pipeline startup code, and
- signal fixes).
-
- Jose Sousa, Interactive Systems Corp., 1991
- Extended vi fixes. Added delete command in vi.
-
- Marc Horowitz, MIT, 1991
- Ansification fixes, new exec hashing code, imake fixes,
- where builtin.
-
- Eric Schnoebelen, Convex, 1990
- Convex support, lots of csh bug fixes, save and restore of
- directory stack.
-
- Jaap Vermeulen, Sequent, 1990-91
- Vi mode fixes, expand-line, window change fixes, ported to
- symmetry machines.
-
- Ron Flax, Apple, 1990
- Ported again to A/UX 2.0
-
-
-
-
- Page 51 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- Dan Oscarsson, LTH Sweden, 1990
- NLS support and simulated for non NLS sites. Correction of
- file names also handles the case when the / is replaced by
- another character. The editor does not switch into cbreak
- mode unless needed. The shell will not use character
- attributes when output is not to a tty.
-
- Johan Widen, SICS Sweden, 1990
- Shell level variable, mach support, correct-line, 8-bit
- printing.
-
- Matt Day, Sanyo Icon, 1990
- Added POSIX termio support; Fixed limit stuff for SysV.
-
- Hans J. Albertsson (Sun Sweden)
- Added the ampm variable handling, DING!, and the settc and
- telltc builtins.
-
- Michael Bloom
- Fixed some of the interrupt handling.
-
- Michael Fine, Digital Equipment Corp
- added the extended key support.
-
- Daniel Long, NNSC, 1988
- Added the wordchars variable.
-
- George Hartzell, MCD Biology, University of Colorado-
- Boulder, 1988
- Fixed the always resetting to DEL bug.
-
- Patrick Wolfe, Kuck and Associates, Inc., 1988
- Cleaned up VI mode and wrote the new editor description (in
- section 1).
-
- Jak Kirman, 1988
- Fixed the SunOS 4 giant stack allocation bug.
-
- Bruce Robertson, Tektronix, 1989
- Fixed setting erase and kill (again).
-
- David C Lawrence, Rensselaer Polytechnic Institute, 1989
- Added "autolist" variable and code to list possibilities on
- ambiguous completion.
-
- Martin Boyer, Institut de recherche d'Hydro-Quebec, 1991.
- Modified "autolist" variable and code to give options on
- beeping behavior. Modified the history search to search for
- the whole string from the beginning of the line to the
- cursor.
-
- Alec Wolman, DEC, 1989
-
-
-
- Page 52 (printed 3/9/94)
-
-
-
-
-
-
- TTTTCCCCSSSSHHHH((((1111)))) CCCCoooorrrrnnnneeeellllllll 6666....00004444....00000000 ((((3333 JJJJuuuullllyyyy 1111999999993333)))) TTTTCCCCSSSSHHHH((((1111))))
-
-
-
- Added code to allow newlines in the prompt.
-
- Matt Landau, BBN, 1989
- Fixed YP bugs on Suns, added .tcshrc stuff.
-
- Ray Moody, Purdue Physics, 1989
- Added the code to do magic spacebar history expansion.
-
- Mordechai ????, Intel, 1989
- Re-arranged the printprompt() routine to use a switch(*cp)
- (rather than a bunch of ifs), and added a few things to it.
-
- Josh Siegel, dspo.gov, 1989
- Fixed "fg-editor" and added the status line shell variables
- "sl" and "el".
-
- Karl Berry, UMB, 1989
- Fixed a bug involving environ (in sh.func.c) on NeXT
- computers.
-
- Michael Greim, Universitaet des Saarlandes, Saarbruecken,
- W-Germany,
- Fixed the nested backquote bug (yes, you can do it; think
- about aliases) in 4.2 csh. This fix was posted to
- comp.bugs.4bsd.
-
- Kazuhiro Honda, Department of Computer Science, Keio
- University, 1989
- Added the code for automatic spelling correction, the
- prompt3 stuff (the autocorrect prompt), and HOSTTYPE symbols
- for the Sony NEWS.
-
- Paul Placeway, BBN, 1990
- Fixed character redrawing code insert bugs, and made
- redrawing code handle multiple character movement, insert,
- and delete (if it exists). Fixed setting of SHELL.
-
- Per Hedeland, Ellemtel, Sweden, 1990
- Various bugfixes and improvements, e.g. in history
- expansion, autolist, added autoexpand, updated the manual.
-
- TTTTHHHHAAAANNNNKKKKSSSS TTTTOOOO
- A special thanks to: Bryan Dunlap, Clayton Elwell, Karl
- Kleinpaste, Bob Manson, Steve Romig, Diana Smetters, Bob
- Sutterfield, Mark Verber, Elizabeth Zwicky, and all the
- other people at Ohio State for suggestions and
- encouragement.
-
- Also, thanks to all the people on the net for putting up
- with, reporting bugs in, and suggesting new additions to the
- old tcsh editor.
-
-
-
-
- Page 53 (printed 3/9/94)
-
-
-
-